浏览代码

Debug v16

Laurent Destailleur 3 年之前
父节点
当前提交
71c0f08b6c
共有 1 个文件被更改,包括 128 次插入104 次删除
  1. 128 104
      htdocs/public/eventorganization/attendee_new.php

+ 128 - 104
htdocs/public/eventorganization/attendee_new.php

@@ -92,15 +92,27 @@ if ($type == 'conf') {
 		$errmsg .= $project->error;
 	}
 }
+
+$currentnbofattendees = 0;
 if ($type == 'global') {
 	$resultproject = $project->fetch($id);
 	if ($resultproject < 0) {
 		$error++;
 		$errmsg .= $project->error;
+	} else {
+		$sql = "SELECT COUNT(*) as nb FROM ".MAIN_DB_PREFIX."projet";
+		$sql .= " WHERE ".MAIN_DB_PREFIX."eventorganization_conferenceorboothattendee = ".((int) $project->id);
+
+		$resql = $db->query($resql);
+		if ($resql) {
+			$obj = $db->fetch_object($resql);
+			if ($obj) {
+				$currentnbofattendees = $obj->nb;
+			}
+		}
 	}
 }
 
-
 // Security check
 $securekeyreceived = GETPOST('securekey', 'alpha');
 $securekeytocompare = dol_hash($conf->global->EVENTORGANIZATION_SECUREKEY.'conferenceorbooth'.$id, 'md5');
@@ -628,6 +640,7 @@ print '<div class="center subscriptionformhelptext justify">';
 
 print $langs->trans("EvntOrgWelcomeMessage", $project->title . ' '. $conference->label);
 print '<br>';
+$maxattendees = 0;
 if ($conference->id) {
 	print $langs->trans("Date").': ';
 	print dol_print_date($conference->datep);
@@ -642,138 +655,149 @@ if ($conference->id) {
 		print ' - ';
 		print dol_print_date($project->date_end);
 	}
+	$maxattendees = $project->max_attendees;
 }
 print '</div>';
 
+if ($maxattendees && $currentnbofattendees >= $maxattendees) {
+	print '<br>';
+	print '<div class="warning">'.$langs->trans("MaxNbOfAttendeesReached").'</div>';
+	print '<br>';
+}
+
+
 print '<br>';
 
 dol_htmloutput_errors($errmsg);
 
-if (!empty($conference->id) && $conference->status==ConferenceOrBooth::STATUS_CONFIRMED  || (!empty($project->id) && $project->status==Project::STATUS_VALIDATED)) {
-	// Print form
-	print '<form action="' . $_SERVER["PHP_SELF"] . '" method="POST" name="newmember">' . "\n";
-	print '<input type="hidden" name="token" value="' . newToken() . '" / >';
-	print '<input type="hidden" name="entity" value="' . $entity . '" />';
-	print '<input type="hidden" name="action" value="add" />';
-	print '<input type="hidden" name="type" value="' . $type . '" />';
-	print '<input type="hidden" name="id" value="' . $conference->id . '" />';
-	print '<input type="hidden" name="fk_project" value="' . $project->id . '" />';
-	print '<input type="hidden" name="securekey" value="' . $securekeyreceived . '" />';
+if ((!empty($conference->id) && $conference->status == ConferenceOrBooth::STATUS_CONFIRMED) || (!empty($project->id) && $project->status == Project::STATUS_VALIDATED)) {
+	if (empty($maxattendees) || $currentnbofattendees < $maxattendees) {
+		// Print form
+		print '<form action="' . $_SERVER["PHP_SELF"] . '" method="POST" name="newmember">' . "\n";
+		print '<input type="hidden" name="token" value="' . newToken() . '" / >';
+		print '<input type="hidden" name="entity" value="' . $entity . '" />';
+		print '<input type="hidden" name="action" value="add" />';
+		print '<input type="hidden" name="type" value="' . $type . '" />';
+		print '<input type="hidden" name="id" value="' . $conference->id . '" />';
+		print '<input type="hidden" name="fk_project" value="' . $project->id . '" />';
+		print '<input type="hidden" name="securekey" value="' . $securekeyreceived . '" />';
 
-	print '<br>';
+		print '<br>';
 
-	print '<br><span class="opacitymedium">' . $langs->trans("FieldsWithAreMandatory", '*') . '</span><br>';
-	//print $langs->trans("FieldsWithIsForPublic",'**').'<br>';
+		print '<br><span class="opacitymedium">' . $langs->trans("FieldsWithAreMandatory", '*') . '</span><br>';
+		//print $langs->trans("FieldsWithIsForPublic",'**').'<br>';
 
-	print dol_get_fiche_head('');
+		print dol_get_fiche_head('');
 
-	print '<script type="text/javascript">
-	jQuery(document).ready(function () {
+		print '<script type="text/javascript">
 		jQuery(document).ready(function () {
-			jQuery("#selectcountry_id").change(function() {
-			   document.newmember.action.value="create";
-			   document.newmember.submit();
+			jQuery(document).ready(function () {
+				jQuery("#selectcountry_id").change(function() {
+				   document.newmember.action.value="create";
+				   document.newmember.submit();
+				});
 			});
 		});
-	});
-	</script>';
+		</script>';
 
-	print '<table class="border" summary="form to subscribe" id="tablesubscribe">' . "\n";
+		print '<table class="border" summary="form to subscribe" id="tablesubscribe">' . "\n";
 
-	// Email
-	print '<tr><td>' . $langs->trans("EmailAttendee") . '<span style="color: red">*</span></td><td>';
-	print img_picto('', 'email', 'class="pictofixedwidth"');
-	print '<input type="text" name="email" maxlength="255" class="minwidth200" value="' . dol_escape_htmltag(GETPOST('email')) . '"></td></tr>' . "\n";
-
-	// Company
-	print '<tr id="trcompany" class="trcompany"><td>' . $langs->trans("Company");
-	if (!empty(floatval($project->price_registration))) {
-		print '<span style="color: red">*</span>';
-	}
-	print ' </td><td>';
-	print img_picto('', 'company', 'class="pictofixedwidth"');
-	print '<input type="text" name="societe" class="minwidth200" value="' . dol_escape_htmltag(GETPOST('societe')) . '"></td></tr>' . "\n";
-
-	// Email company for invoice
-	if ($project->price_registration) {
-		print '<tr><td>' . $langs->trans("EmailCompanyForInvoice") . '</td><td>';
+		// Email
+		print '<tr><td>' . $langs->trans("EmailAttendee") . '<span style="color: red">*</span></td><td>';
 		print img_picto('', 'email', 'class="pictofixedwidth"');
-		print '<input type="text" name="emailcompany" maxlength="255" class="minwidth200" value="' . dol_escape_htmltag(GETPOST('emailcompany')) . '"></td></tr>' . "\n";
-	}
+		print '<input type="text" name="email" maxlength="255" class="minwidth200 widthcentpercentminusx maxwidth300" value="' . dol_escape_htmltag(GETPOST('email')) . '"></td></tr>' . "\n";
 
-	// Address
-	print '<tr><td>' . $langs->trans("Address") . '</td><td>' . "\n";
-	print '<textarea name="address" id="address" wrap="soft" class="centpercent" rows="' . ROWS_2 . '">' . dol_escape_htmltag(GETPOST('address', 'restricthtml'), 0, 1) . '</textarea></td></tr>' . "\n";
-
-	// Zip / Town
-	print '<tr><td>' . $langs->trans('Zip') . ' / ' . $langs->trans('Town') . '</td><td>';
-	print $formcompany->select_ziptown(GETPOST('zipcode'), 'zipcode', array('town', 'selectcountry_id', 'state_id'), 6, 1);
-	print ' / ';
-	print $formcompany->select_ziptown(GETPOST('town'), 'town', array('zipcode', 'selectcountry_id', 'state_id'), 0, 1);
-	print '</td></tr>';
-
-	// Country
-	print '<tr><td>' . $langs->trans('Country') . '<span style="color: red">*</span></td><td>';
-	print img_picto('', 'country', 'class="pictofixedwidth"');
-	$country_id = GETPOST('country_id');
-	if (!$country_id && !empty($conf->global->MEMBER_NEWFORM_FORCECOUNTRYCODE)) {
-		$country_id = getCountry($conf->global->MEMBER_NEWFORM_FORCECOUNTRYCODE, 2, $db, $langs);
-	}
-	if (!$country_id && !empty($conf->geoipmaxmind->enabled)) {
-		$country_code = dol_user_country();
-		//print $country_code;
-		if ($country_code) {
-			$new_country_id = getCountry($country_code, 3, $db, $langs);
-			//print 'xxx'.$country_code.' - '.$new_country_id;
-			if ($new_country_id) {
-				$country_id = $new_country_id;
-			}
+		// Company
+		print '<tr id="trcompany" class="trcompany"><td>' . $langs->trans("Company");
+		if (!empty(floatval($project->price_registration))) {
+			print '<span style="color: red">*</span>';
 		}
-	}
-	$country_code = getCountry($country_id, 2, $db, $langs);
-	print $form->select_country($country_id, 'country_id');
-	print '</td></tr>';
-	// State
-	if (empty($conf->global->SOCIETE_DISABLE_STATE)) {
-		print '<tr><td>' . $langs->trans('State') . '</td><td>';
-		if ($country_code) {
-			print $formcompany->select_state(GETPOST("state_id"), $country_code);
-		} else {
-			print '';
+		print ' </td><td>';
+		print img_picto('', 'company', 'class="pictofixedwidth"');
+		print '<input type="text" name="societe" class="minwidth200 widthcentpercentminusx maxwidth300" value="' . dol_escape_htmltag(GETPOST('societe')) . '"></td></tr>' . "\n";
+
+		// Email company for invoice
+		if ($project->price_registration) {
+			print '<tr><td>' . $langs->trans("EmailCompanyForInvoice") . '</td><td>';
+			print img_picto('', 'email', 'class="pictofixedwidth"');
+			print '<input type="text" name="emailcompany" maxlength="255" class="minwidth200 widthcentpercentminusx maxwidth300" value="' . dol_escape_htmltag(GETPOST('emailcompany')) . '"></td></tr>' . "\n";
 		}
+
+		// Address
+		print '<tr><td>' . $langs->trans("Address") . '</td><td>' . "\n";
+		print '<textarea name="address" id="address" wrap="soft" class="centpercent" rows="' . ROWS_2 . '">' . dol_escape_htmltag(GETPOST('address', 'restricthtml'), 0, 1) . '</textarea></td></tr>' . "\n";
+
+		// Zip / Town
+		print '<tr><td>' . $langs->trans('Zip') . ' / ' . $langs->trans('Town') . '</td><td>';
+		print $formcompany->select_ziptown(GETPOST('zipcode'), 'zipcode', array('town', 'selectcountry_id', 'state_id'), 6, 1);
+		print ' / ';
+		print $formcompany->select_ziptown(GETPOST('town'), 'town', array('zipcode', 'selectcountry_id', 'state_id'), 0, 1);
 		print '</td></tr>';
-	}
 
-	if ($project->price_registration) {
-		print '<tr><td>' . $langs->trans('Price') . '</td><td>';
-		print price($project->price_registration, 1, $langs, 1, -1, -1, $conf->currency);
+		// Country
+		print '<tr><td>' . $langs->trans('Country') . '<span style="color: red">*</span></td><td>';
+		print img_picto('', 'country', 'class="pictofixedwidth"');
+		$country_id = GETPOST('country_id');
+		if (!$country_id && !empty($conf->global->MEMBER_NEWFORM_FORCECOUNTRYCODE)) {
+			$country_id = getCountry($conf->global->MEMBER_NEWFORM_FORCECOUNTRYCODE, 2, $db, $langs);
+		}
+		if (!$country_id && !empty($conf->geoipmaxmind->enabled)) {
+			$country_code = dol_user_country();
+			//print $country_code;
+			if ($country_code) {
+				$new_country_id = getCountry($country_code, 3, $db, $langs);
+				//print 'xxx'.$country_code.' - '.$new_country_id;
+				if ($new_country_id) {
+					$country_id = $new_country_id;
+				}
+			}
+		}
+		$country_code = getCountry($country_id, 2, $db, $langs);
+		print $form->select_country($country_id, 'country_id', '', 0, 'minwidth200 widthcentpercentminusx maxwidth300');
 		print '</td></tr>';
-	}
+		// State
+		if (empty($conf->global->SOCIETE_DISABLE_STATE)) {
+			print '<tr><td>' . $langs->trans('State') . '</td><td>';
+			if ($country_code) {
+				print img_picto('', 'state', 'class="pictofixedwidth"');
+				print $formcompany->select_state(GETPOST("state_id"), $country_code);
+			} else {
+				print '';
+			}
+			print '</td></tr>';
+		}
 
-	$notetoshow = $note_public;
-	print '<tr><td>' . $langs->trans('Note') . '</td><td>';
-	if (!empty($conf->global->EVENTORGANIZATION_DEFAULT_NOTE_ON_REGISTRATION)) {
-		$notetoshow = str_replace('\n', "\n", $conf->global->EVENTORGANIZATION_DEFAULT_NOTE_ON_REGISTRATION);
-	}
-	print '<textarea name="note_public" class="centpercent" rows="'.ROWS_9.'">'.dol_escape_htmltag($notetoshow, 0, 1).'</textarea>';
-	print '</td></tr>';
+		if ($project->price_registration) {
+			print '<tr><td>' . $langs->trans('Price') . '</td><td>';
+			print price($project->price_registration, 1, $langs, 1, -1, -1, $conf->currency);
+			print '</td></tr>';
+		}
 
-	print "</table>\n";
+		$notetoshow = $note_public;
+		print '<tr><td>' . $langs->trans('Note') . '</td><td>';
+		if (!empty($conf->global->EVENTORGANIZATION_DEFAULT_NOTE_ON_REGISTRATION)) {
+			$notetoshow = str_replace('\n', "\n", $conf->global->EVENTORGANIZATION_DEFAULT_NOTE_ON_REGISTRATION);
+		}
+		print '<textarea name="note_public" class="centpercent" rows="'.ROWS_9.'">'.dol_escape_htmltag($notetoshow, 0, 1).'</textarea>';
+		print '</td></tr>';
 
-	print dol_get_fiche_end();
+		print "</table>\n";
 
-	// Save
-	print '<div class="center">';
-	print '<input type="submit" value="' . $langs->trans("Submit") . '" id="submitsave" class="button">';
-	if (!empty($backtopage)) {
-		print ' &nbsp; &nbsp; <input type="submit" value="' . $langs->trans("Cancel") . '" id="submitcancel" class="button button-cancel">';
-	}
-	print '</div>';
+		print dol_get_fiche_end();
 
+		// Save
+		print '<div class="center">';
+		print '<input type="submit" value="' . $langs->trans("Submit") . '" id="submitsave" class="button">';
+		if (!empty($backtopage)) {
+			print ' &nbsp; &nbsp; <input type="submit" value="' . $langs->trans("Cancel") . '" id="submitcancel" class="button button-cancel">';
+		}
+		print '</div>';
 
-	print "</form>\n";
-	print "<br>";
-	print '</div></div>';
+
+		print "</form>\n";
+		print "<br>";
+		print '</div></div>';
+	}
 } else {
 	print $langs->trans("ConferenceIsNotConfirmed");
 }