fetchObject()) {
/* get preference */
$preference_q = db_query("SELECT pe.*, po.approval_date as approval_date
FROM textbook_companion_preference pe LEFT JOIN textbook_companion_proposal po ON pe.proposal_id = po.id
WHERE po.proposal_status = 3 AND pe.proposal_id = :proposal_id AND pe.approval_status = 1 AND pe.category > 0 ORDER BY pe.book ASC", array(
":proposal_id" => $proposal_data->id
));
/* $preference_q = db_query("SELECT * FROM textbook_companion_preference WHERE proposal_id = :proposal_id AND approval_status = 1 LIMIT 1",array(":proposal_id" =>$proposal_data->id)); */
$preference_data = $preference_q->fetchObject();
/* if(!$preference_data){
$preference_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = :proposal_id AND pref_number = 1 LIMIT 1", array(":proposal_id" => $proposal_data->id));
$preference_data = $preference_q->fetchObject();
}*/
$proposal_status = '';
switch ($proposal_data->proposal_status) {
case 0:
$proposal_status = 'Pending';
break;
case 1:
$proposal_status = 'Approved';
break;
case 2:
$proposal_status = 'Dis-approved';
break;
case 3:
$proposal_status = 'Completed';
break;
case 4:
$proposal_status = 'External';
break;
default:
$proposal_status = 'Unknown';
break;
} //$proposal_data->proposal_status
$proposal_rows[] = array(
date('d-m-Y', $proposal_data->creation_date),
"{$preference_data->book}
by {$preference_data->author}",
l($proposal_data->full_name, 'user/' . $proposal_data->uid),
$proposal_data->city,
$proposal_data->state,
date('d-m-Y', $proposal_data->completion_date),
$proposal_status,
// l('Status', 'form_edit/status/' . $proposal_data->id) . ' | ' .;
l('Edit', 'form_edit/tbc/edit/' . $proposal_data->id) . _tbc_ext($proposal_status, $preference_data->id)
);
} //$proposal_data = $proposal_q->fetchObject()
/* check if there are any pending proposals */
if (!$proposal_rows) {
drupal_set_message(t('There are no proposals.'), 'status');
return '';
} //!$proposal_rows
$prop_count_query = db_query("SELECT COUNT( pe.book ) AS book_count FROM textbook_companion_preference pe LEFT JOIN textbook_companion_proposal po ON pe.proposal_id = po.id WHERE po.proposal_status =3 AND pe.approval_status =1 AND pe.category>0");
$prop_count_data = $prop_count_query->fetchObject();
$proposal_header = array(
'Date of Submission',
'Title of the Book',
'Contributor Name',
'City',
'State',
'Expected Date of Completion',
'Status',
'Action'
);
$output .= "Completed Books: " . $prop_count_data->book_count;
$output .= theme('table', array(
'header' => $proposal_header,
'rows' => $proposal_rows,
'attributes' => array(
'style' => 'overflow: scroll'
)
));
return $output;
}
/******************************************************************************/
/**************************** PROPOSAL EDIT FORM ******************************/
/******************************************************************************/
function proposal_edit_form($form, &$form_state, $nonaicte_book)
{
global $user;
/* get current proposal */
$proposal_id = arg(3);
$proposal_q = db_query("SELECT * FROM {textbook_companion_proposal} WHERE id = :prop_id AND proposal_status = 3", array(
":prop_id" => $proposal_id
));
if ($proposal_q) {
$proposal_data = $proposal_q->fetchObject();
if (!$proposal_data) {
drupal_set_message(t('Invalid proposal selected. Please try again.'), 'error');
drupal_goto('form_edit');
return;
} //!$proposal_data
} //$proposal_q
else {
drupal_set_message(t('Invalid proposal selected. Please try again.'), 'error');
drupal_goto('form_edit');
return;
}
$user_data = user_load($proposal_data->uid);
$preference_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = :proposal_id AND approval_status = 1 LIMIT 1", array(
":proposal_id" => $proposal_id
));
$preference_data = $preference_q->fetchObject();
/*$preference2_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = :proposal_id AND pref_number = :pref_number LIMIT 1",array(":proposal_id"=>$proposal_id, ":pref_number"=> 2));
$preference2_data = $preference2_q->fetchObject();
$preference3_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = :proposal_id AND pref_number = :pref_number LIMIT 1", array(":proposal_id"=>$proposal_id, ":pref_number"=>3));
$preference3_data = $preference3_q->fetchObject();
*/
$form['full_name'] = array(
'#type' => 'textfield',
'#title' => t('Full Name'),
'#size' => 30,
'#maxlength' => 50,
'#required' => TRUE,
'#default_value' => $proposal_data->full_name
);
$form['email_id'] = array(
'#type' => 'textfield',
'#title' => t('Email'),
'#size' => 30,
'#value' => $user_data->mail,
'#disabled' => TRUE
);
$form['mobile'] = array(
'#type' => 'textfield',
'#title' => t('Mobile No.'),
'#size' => 30,
'#maxlength' => 15,
'#required' => TRUE,
'#default_value' => $proposal_data->mobile
);
$form['how_project'] = array(
'#type' => 'select',
'#title' => t('How did you come to know about this project'),
'#options' => array(
'Scilab Website' => 'Scilab Website',
'Friend' => 'Friend',
'Professor/Teacher' => 'Professor/Teacher',
'Mailing List' => 'Mailing List',
'Poster in my/other college' => 'Poster in my/other college',
'Others' => 'Others'
),
'#required' => TRUE,
'#default_value' => $proposal_data->how_project
);
$form['course'] = array(
'#type' => 'textfield',
'#title' => t('Course'),
'#size' => 30,
'#maxlength' => 50,
'#required' => TRUE,
'#default_value' => $proposal_data->course
);
$form['branch'] = array(
'#type' => 'select',
'#title' => t('Department/Branch'),
'#options' => _form_edit_list_of_departments($proposal_data->branch),
'#required' => TRUE,
'#default_value' => $proposal_data->branch
);
$form['university'] = array(
'#type' => 'textfield',
'#title' => t('University/Institute'),
'#size' => 30,
'#maxlength' => 100,
'#required' => TRUE,
'#default_value' => $proposal_data->university
);
$form['country'] = array(
'#type' => 'select',
'#title' => t('Country'),
'#options' => array(
'India' => 'India',
'Others' => 'Others'
),
'#required' => TRUE,
'#tree' => TRUE,
'#validated' => TRUE,
'#default_value' => $proposal_data->country
);
$form['other_country'] = array(
'#type' => 'textfield',
'#title' => t('Other than India'),
'#size' => 100,
'#attributes' => array(
'placeholder' => t('Enter your country name')
),
'#default_value' => $proposal_data->country,
'#states' => array(
'visible' => array(
':input[name="country"]' => array(
'value' => 'Others'
)
)
)
);
$form['other_state'] = array(
'#type' => 'textfield',
'#title' => t('State other than India'),
'#size' => 100,
'#attributes' => array(
'placeholder' => t('Enter your state/region name')
),
'#default_value' => $proposal_data->state,
'#states' => array(
'visible' => array(
':input[name="country"]' => array(
'value' => 'Others'
)
)
)
);
$form['other_city'] = array(
'#type' => 'textfield',
'#title' => t('City other than India'),
'#size' => 100,
'#attributes' => array(
'placeholder' => t('Enter your city name')
),
'#default_value' => $proposal_data->city,
'#states' => array(
'visible' => array(
':input[name="country"]' => array(
'value' => 'Others'
)
)
)
);
$form['all_state'] = array(
'#type' => 'select',
'#title' => t('State'),
'#options' => _tbc_list_of_states(),
'#validated' => TRUE,
'#default_value' => $proposal_data->state,
'#states' => array(
'visible' => array(
':input[name="country"]' => array(
'value' => 'India'
)
)
)
);
$form['city'] = array(
'#type' => 'select',
'#title' => t('City'),
'#options' => _tbc_list_of_cities(),
'#default_value' => $proposal_data->city,
'#states' => array(
'visible' => array(
':input[name="country"]' => array(
'value' => 'India'
)
)
)
);
$form['pincode'] = array(
'#type' => 'textfield',
'#title' => t('Pincode'),
'#size' => 30,
'#maxlength' => 6,
'#default_value' => $proposal_data->pincode,
'#required' => True,
'#attributes' => array(
'placeholder' => 'Enter pincode....'
)
);
$form['faculty'] = array(
'#type' => 'textfield',
'#title' => t('College Teacher/Professor'),
'#size' => 30,
'#maxlength' => 100,
'#required' => TRUE,
'#default_value' => $proposal_data->faculty
);
$form['reviewer'] = array(
'#type' => 'textfield',
'#title' => t('Reviewer'),
'#size' => 30,
'#maxlength' => 100,
'#default_value' => $proposal_data->reviewer
);
$form['completion_date'] = array(
'#type' => 'textfield',
'#title' => t('Expected Date of Completion'),
'#description' => t('Input date format should be DD-MM-YYYY. Eg: 23-03-2011'),
'#size' => 10,
'#maxlength' => 10,
'#default_value' => date('d-m-Y', $proposal_data->completion_date)
);
list($scilab, $version) = explode(' ', $proposal_data->scilab_version);
$scilab_version = $version;
$form['version'] = array(
'#type' => 'textfield',
'#title' => t('Scilab Version'),
'#size' => 10,
'#maxlength' => 20,
'#default_value' => $scilab_version
);
$form['operating_system'] = array(
'#type' => 'textfield',
'#title' => t('Operating System'),
'#size' => 30,
'#maxlength' => 50,
'#default_value' => $proposal_data->operating_system
);
$form['preference'] = array(
'#type' => 'fieldset',
'#title' => t('Book Preference'),
'#collapsible' => TRUE,
'#collapsed' => FALSE
);
$form['preference']['book'] = array(
'#type' => 'textfield',
'#title' => t('Title of the book'),
'#size' => 30,
'#maxlength' => 100,
'#required' => TRUE,
'#default_value' => $preference_data->book
);
$form['preference']['author'] = array(
'#type' => 'textfield',
'#title' => t('Author Name'),
'#size' => 30,
'#maxlength' => 100,
'#required' => TRUE,
'#default_value' => $preference_data->author
);
$form['preference']['isbn'] = array(
'#type' => 'textfield',
'#title' => t('ISBN No'),
'#size' => 30,
'#maxlength' => 25,
'#required' => TRUE,
'#default_value' => $preference_data->isbn
);
$form['preference']['publisher'] = array(
'#type' => 'textfield',
'#title' => t('Publisher & Place'),
'#size' => 30,
'#maxlength' => 50,
'#required' => TRUE,
'#default_value' => $preference_data->publisher
);
$form['preference']['edition'] = array(
'#type' => 'textfield',
'#title' => t('Edition'),
'#size' => 4,
'#maxlength' => 2,
'#required' => TRUE,
'#default_value' => $preference_data->edition
);
$form['preference']['year'] = array(
'#type' => 'textfield',
'#title' => t('Year of pulication'),
'#size' => 4,
'#maxlength' => 4,
'#required' => TRUE,
'#default_value' => $preference_data->year
);
$form['preference']['book_category_'] = array(
'#type' => 'select',
'#title' => t('Category'),
'#options' => _form_edit_list_of_category($preference_data->category)
);
/* hidden fields */
$form['hidden_proposal_id'] = array(
'#type' => 'hidden',
'#value' => $proposal_id
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit')
);
$form['cancel'] = array(
'#markup' => l(t('Cancel'), 'form_edit/tbc/all')
);
return $form;
}
function proposal_edit_form_validate($form, &$form_state, &$nonaicte_book)
{
if (($form_state['values']['all_state'] === '') || ($form_state['values']['all_state'] === 0)) {
form_set_error('all_state', t('You must select a state.'));
} //($form_state['values']['all_state'] === '') || ($form_state['values']['all_state'] === 0)
if (!preg_match("/^[1-9]{1}[0-9]{5}$/", $form_state['values']['pincode']))
form_set_error('pincode', t('Invalid pincode'));
/* mobile */
if (!preg_match('/^[0-9\ \+]{0,15}$/', $form_state['values']['mobile']))
form_set_error('mobile', t('Invalid mobile number'));
/* date of completion */
if (!preg_match('/^[0-9]{1,2}-[0-9]{1,2}-[0-9]{4}$/', $form_state['values']['completion_date']))
form_set_error('completion_date', t('Invalid expected date of completion'));
list($d, $m, $y) = explode('-', $form_state['values']['completion_date']);
$d = (int) $d;
$m = (int) $m;
$y = (int) $y;
if (!checkdate($m, $d, $y))
form_set_error('completion_date', t('Invalid expected date of completion'));
//if (mktime(0, 0, 0, $m, $d, $y) <= time())
//form_set_error('completion_date', t('Expected date of completion should be in future'));
/* edition */
if (!preg_match('/^[1-9][0-9]{0,1}$/', $form_state['values']['edition']))
form_set_error('edition', t('Invalid edition for Book Preference '));
/* year of publication */
if (!preg_match('/^[1-3][0-9][0-9][0-9]$/', $form_state['values']['year']))
form_set_error('year', t('Invalid year of pulication for Book Preference '));
/* year of publication */
$cur_year = date('Y');
if ((int) $form_state['values']['year'] > $cur_year)
form_set_error('year', t('Year of pulication should be not in the future for Book Preference '));
/* isbn */
if (!preg_match('/^[0-9\-xX]+$/', $form_state['values']['isbn']))
form_set_error('isbn', t('Invalid ISBN for Book Preference'));
/* country */
if ($form_state['values']['country'] == 'Others') {
if ($form_state['values']['other_country'] == '') {
form_set_error('other_country', t('Enter country name'));
} //$form_state['values']['other_country'] == ''
else {
$form_state['values']['country'] = $form_state['values']['other_country'];
}
if ($form_state['values']['other_state'] == '') {
form_set_error('other_state', t('Enter state name'));
} //$form_state['values']['other_state'] == ''
else {
$form_state['values']['all_state'] = $form_state['values']['other_state'];
}
if ($form_state['values']['other_city'] == '') {
form_set_error('other_city', t('Enter city name'));
} //$form_state['values']['other_city'] == ''
else {
$form_state['values']['city'] = $form_state['values']['other_city'];
}
} //$form_state['values']['country'] == 'Others'
else {
if ($form_state['values']['country'] == '') {
form_set_error('country', t('Select country name'));
} //$form_state['values']['country'] == ''
if ($form_state['values']['all_state'] == '') {
form_set_error('all_state', t('Select state name'));
} //$form_state['values']['all_state'] == ''
if ($form_state['values']['city'] == '') {
form_set_error('city', t('Select city name'));
} //$form_state['values']['city'] == ''
}
return;
}
function proposal_edit_form_submit($form, &$form_state)
{
/* completion date to timestamp */
list($d, $m, $y) = explode('-', $form_state['values']['completion_date']);
$completion_date_timestamp = mktime(0, 0, 0, $m, $d, $y);
$proposal_id = $form_state['values']['hidden_proposal_id'];
db_query("UPDATE {textbook_companion_proposal} SET
full_name = :full_name,
mobile = :mobile,
how_project = :how_project,
course = :course,
branch = :branch,
university = :university,
country= :country,
city = :city,
pincode =:pincode,
state = :state,
faculty = :faculty,
reviewer = :reviewer,
completion_date = :completion_date,
operating_system = :operating_system,
scilab_version= :scilab_version
WHERE
id = :id", array(
":full_name" => $form_state['values']['full_name'],
":mobile" => $form_state['values']['mobile'],
":how_project" => $form_state['values']['how_project'],
":course" => $form_state['values']['course'],
":branch" => $form_state['values']['branch'],
":university" => $form_state['values']['university'],
":country" => $form_state['values']['country'],
":city" => $form_state['values']['city'],
":pincode" => $form_state['values']['pincode'],
":state" => $form_state['values']['all_state'],
":faculty" => $form_state['values']['faculty'],
":reviewer" => $form_state['values']['reviewer'],
":completion_date" => $completion_date_timestamp,
":operating_system" => $form_state['values']['operating_system'],
":scilab_version" => $form_state['values']['version'],
":id" => $proposal_id
));
$preference_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE proposal_id = :proposal_id AND approval_status = 1 LIMIT 1", array(
":proposal_id" => $proposal_id
));
$preference_data = $preference_q->fetchObject();
if ($preference_data) {
del_book_pdf($preference_data->id);
db_query("UPDATE {textbook_companion_preference} SET book = :book, author = :author, isbn = :isbn, publisher = :publisher , edition = :edition, year = :year WHERE id = :id", array(
":book" => $form_state['values']['book'],
":author" => $form_state['values']['author'],
":isbn" => $form_state['values']['isbn'],
":publisher" => $form_state['values']['publisher'],
":edition" => $form_state['values']['edition'],
":year" => $form_state['values']['year'],
":id" => $preference_id
));
} //$preference_data
drupal_set_message(t('Proposal Updated'), 'status');
}
/******************************************************************************************************************/
function _completed_lab_proposal_all()
{
/* get pending proposals to be approved */
$proposal_rows = array();
$proposal_q = db_query("SELECT * FROM {lab_migration_proposal} WHERE approval_status = 3 ORDER BY id DESC");
while ($proposal_data = $proposal_q->fetchObject()) {
$approval_status = '';
switch ($proposal_data->approval_status) {
case 0:
$approval_status = 'Pending';
break;
case 1:
$approval_status = 'Approved';
break;
case 2:
$approval_status = 'Dis-approved';
break;
case 3:
$approval_status = 'Solved';
break;
default:
$approval_status = 'Unknown';
break;
} //$proposal_data->approval_status
$proposal_rows[] = array(
date('d-m-Y', $proposal_data->creation_date),
l($proposal_data->name, 'user/' . $proposal_data->uid),
$proposal_data->lab_title,
$proposal_data->department,
$proposal_data->city,
$proposal_data->state,
$approval_status,
l('Edit', 'form_edit/lm/edit/' . $proposal_data->id)
);
} //$proposal_data = $proposal_q->fetchObject()
/* check if there are any pending proposals */
if (!$proposal_rows) {
drupal_set_message(t('There are no proposals.'), 'status');
return '';
} //!$proposal_rows
$proposal_header = array(
'Date of Submission',
'Name',
'Title of the Lab',
'Department',
'City',
'State',
'Status'
);
$output = theme('table', array(
'header' => $proposal_header,
'rows' => $proposal_rows,
'attributes' => array(
'style' => 'overflow: scroll'
)
));
return $output;
}
function _completed_lab_proposal_edit_form($form, &$form_state)
{
global $user;
/* get current proposal */
$proposal_id = (int) arg(3);
$proposal_q = db_query("SELECT * FROM {lab_migration_proposal} WHERE id = :id", array(
":id" => $proposal_id
));
if ($proposal_q) {
if ($proposal_data = $proposal_q->fetchObject()) {
/* everything ok */
} //$proposal_data = $proposal_q->fetchObject()
else {
drupal_set_message(t('Invalid proposal selected. Please try again.'), 'error');
drupal_goto('form_edit/lm/all');
return;
}
} //$proposal_q
else {
drupal_set_message(t('Invalid proposal selected. Please try again.'), 'error');
drupal_goto('form_edit/lm/all');
return;
}
$user_data = user_load($proposal_data->uid);
$form['name_title'] = array(
'#type' => 'select',
'#title' => t('Title'),
'#options' => array(
'Mr' => 'Mr',
'Ms' => 'Ms',
'Mrs' => 'Mrs',
'Dr' => 'Dr',
'Prof' => 'Prof'
),
'#required' => TRUE,
'#default_value' => $proposal_data->name_title
);
$form['name'] = array(
'#type' => 'textfield',
'#title' => t('Name of the Proposer'),
'#size' => 90,
'#maxlength' => 50,
'#required' => TRUE,
'#default_value' => $proposal_data->name
);
$form['email_id'] = array(
'#type' => 'item',
'#title' => t('Email'),
'#value' => $user_data->mail
);
$form['contact_ph'] = array(
'#type' => 'textfield',
'#title' => t('Contact No.'),
'#size' => 30,
'#maxlength' => 15,
'#required' => TRUE,
'#default_value' => $proposal_data->contact_ph
);
$form['department'] = array(
'#type' => 'select',
'#title' => t('Department/Branch'),
'#options' => _form_edit_list_of_departments(),
'#required' => TRUE,
'#default_value' => $proposal_data->department
);
$form['university'] = array(
'#type' => 'textfield',
'#title' => t('University/Institute'),
'#size' => 90,
'#maxlength' => 50,
'#required' => TRUE,
'#default_value' => $proposal_data->university
);
$form['country'] = array(
'#type' => 'select',
'#title' => t('Country'),
'#options' => array(
'India' => 'India',
'Others' => 'Others'
),
'#default_value' => $proposal_data->country,
'#required' => TRUE,
'#tree' => TRUE,
'#validated' => TRUE
);
$form['other_country'] = array(
'#type' => 'textfield',
'#title' => t('Other than India'),
'#size' => 100,
'#default_value' => $proposal_data->country,
'#attributes' => array(
'placeholder' => t('Enter your country name')
),
'#states' => array(
'visible' => array(
':input[name="country"]' => array(
'value' => 'Others'
)
)
)
);
$form['other_state'] = array(
'#type' => 'textfield',
'#title' => t('State other than India'),
'#size' => 100,
'#default_value' => $proposal_data->state,
'#attributes' => array(
'placeholder' => t('Enter your state/region name')
),
'#states' => array(
'visible' => array(
':input[name="country"]' => array(
'value' => 'Others'
)
)
)
);
$form['other_city'] = array(
'#type' => 'textfield',
'#title' => t('City other than India'),
'#size' => 100,
'#default_value' => $proposal_data->city,
'#attributes' => array(
'placeholder' => t('Enter your city name')
),
'#states' => array(
'visible' => array(
':input[name="country"]' => array(
'value' => 'Others'
)
)
)
);
$form['all_state'] = array(
'#type' => 'select',
'#title' => t('State'),
'#options' => _tbc_list_of_states(),
'#default_value' => $proposal_data->state,
'#validated' => TRUE,
'#states' => array(
'visible' => array(
':input[name="country"]' => array(
'value' => 'India'
)
)
)
);
$form['city'] = array(
'#type' => 'select',
'#title' => t('City'),
'#options' => _tbc_list_of_cities(),
'#default_value' => $proposal_data->city,
'#states' => array(
'visible' => array(
':input[name="country"]' => array(
'value' => 'India'
)
)
)
);
$form['pincode'] = array(
'#type' => 'textfield',
'#title' => t('Pincode'),
'#size' => 30,
'#maxlength' => 6,
'#required' => True,
'#attributes' => array(
'placeholder' => 'Enter pincode....'
),
'#default_value' => $proposal_data->pincode
);
$form['lab_title'] = array(
'#type' => 'textfield',
'#title' => t('Title of the Lab'),
'#size' => 90,
'#maxlength' => 50,
'#required' => TRUE,
'#default_value' => $proposal_data->lab_title
);
/* get experiment details */
$experiment_q = db_query("SELECT * FROM {lab_migration_experiment} WHERE proposal_id = :proposal_id ORDER BY id ASC", array(
":proposal_id" => $proposal_id
));
$form['lab_experiment'] = array(
'#type' => 'fieldset',
'#collapsible' => FALSE,
'#tree' => TRUE
);
for ($counter = 1; $counter <= 15; $counter++) {
$experiment_title = '';
$experiment_data = $experiment_q->fetchObject();
if ($experiment_data) {
$experiment_title = $experiment_data->title;
$form['lab_experiment']['update'][$experiment_data->id] = array(
'#type' => 'textfield',
'#title' => t('Title of the Experiment ') . $counter,
'#size' => 90,
'#required' => FALSE,
'#tree' => TRUE,
'#default_value' => $experiment_title
);
} //$experiment_data
else {
$form['lab_experiment']['insert'][$counter] = array(
'#type' => 'textfield',
'#title' => t('Title of the Experiment ') . $counter,
'#size' => 90,
'#required' => FALSE,
'#default_value' => $experiment_title
);
}
} //$counter = 1; $counter <= 15; $counter++
if ($proposal_data->solution_provider_uid == 0) {
$solution_provider_user = 'Open';
} //$proposal_data->solution_provider_uid == 0
else if ($proposal_data->solution_provider_uid == $proposal_data->uid) {
$solution_provider_user = 'Proposer';
} //$proposal_data->solution_provider_uid == $proposal_data->uid
else {
$user_data = user_load($proposal_data->solution_provider_uid);
if (!$user_data) {
$solution_provider_user = 1;
drupal_set_message('Solution provider user name is invalid', 'error');
} //!$user_data
$solution_provider_user = $user_data->name;
}
$form['solution_display'] = array(
'#type' => 'radios',
'#title' => t('Do you want to display the solution on the www.scilab.in website'),
'#options' => array(
'1' => 'Yes',
'2' => 'No'
),
'#required' => TRUE,
'#default_value' => ($proposal_data->solution_display == 1) ? "1" : "2"
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit')
);
$form['cancel'] = array(
'#markup' => l(t('Cancel'), 'form_edit/lm/all')
);
return $form;
}
function _completed_lab_proposal_edit_form_validate($form, &$form_state)
{
$proposal_id = (int) arg(3);
if (($form_state['values']['all_state'] === '') || ($form_state['values']['all_state'] === 0)) {
form_set_error('all_state', t('You must select a state.'));
} //($form_state['values']['all_state'] === '') || ($form_state['values']['all_state'] === 0)
if (!preg_match("/^[1-9]{1}[0-9]{5}$/", $form_state['values']['pincode']))
form_set_error('pincode', t('Invalid pincode'));
/* check before delete proposal */
if ($form_state['values']['delete_proposal'] == 1) {
$experiment_q = db_query("SELECT * FROM {lab_migration_experiment} WHERE proposal_id = :proposal_id", array(
":proposal_id" => $proposal_id
));
while ($experiment_data = $experiment_q->fetchObject()) {
$solution_q = db_query("SELECT * FROM {lab_migration_solution} WHERE experiment_id = :experiment_id", array(
":experiment_id" => $experiment_data->id
));
if ($solution_q->fetchObject()) {
form_set_error('', t('Cannot delete proposal since there are solutions already uploaded. Use the "Bulk Manage" interface to delete this proposal'));
} //$solution_q->fetchObject()
} //$experiment_data = $experiment_q->fetchObject()
} //$form_state['values']['delete_proposal'] == 1
return;
}
function _completed_lab_proposal_edit_form_submit($form, &$form_state)
{
global $user;
/* get current proposal */
$proposal_id = (int) arg(3);
$proposal_q = db_query("SELECT * FROM {lab_migration_proposal} WHERE id = :id", array(
":id" => $proposal_id
));
if ($proposal_q) {
if ($proposal_data = $proposal_q->fetchObject()) {
/* everything ok */
} //$proposal_data = $proposal_q->fetchObject()
else {
drupal_set_message(t('Invalid proposal selected. Please try again.'), 'error');
drupal_goto('form_edit/lm/all');
return;
}
} //$proposal_q
else {
drupal_set_message(t('Invalid proposal selected. Please try again.'), 'error');
drupal_goto('form_edit/lm/all');
return;
}
$solution_display = 0;
if ($form_state['values']['solution_display'] == 1) {
$solution_display = 1;
} //$form_state['values']['solution_display'] == 1
else {
$solution_display = 0;
}
/* update proposal */
$result = db_query("UPDATE {lab_migration_proposal} SET
name_title = :name_title,
name = :name,
contact_ph = :contact_ph,
department = :department,
university = :university,
city = :city,
state = :state,
pincode = :pincode,
lab_title = :lab_title,
solution_display = :solution_display
WHERE
id = :id", array(
":name_title" => $form_state['values']['name_title'],
":name" => $form_state['values']['name'],
":contact_ph" => $form_state['values']['contact_ph'],
":department" => $form_state['values']['department'],
":university" => $form_state['values']['university'],
":city" => $form_state['values']['city'],
":state" => $form_state['values']['all_state'],
":pincode" => $form_state['values']['pincode'],
":lab_title" => $form_state['values']['lab_title'],
":solution_display" => $solution_display,
":id" => $proposal_id
));
if (!$result) {
drupal_set_message(t('Error receiving your proposal. Please try again.'), 'error');
return;
} //!$result
/* updating existing experiments */
foreach ($form_state['values']['lab_experiment']['update'] as $update_id => $update_value) {
if (strlen(trim($update_value)) >= 1) {
$result = db_query("UPDATE {lab_migration_experiment} SET title = :title WHERE id = :id", array(
":title" => trim($update_value),
":id" => $update_id
));
if (!$result) {
drupal_set_message(t('Could not update Title of the Experiment : ') . trim($update_value), 'error');
} //!$result
} //strlen(trim($update_value)) >= 1
else {
db_query("DELETE FROM {lab_migration_experiment} WHERE id = :id LIMIT 1", array(
":id" => $update_id
));
}
} //$form_state['values']['lab_experiment']['update'] as $update_id => $update_value
/* inserting new experiments */
$number_q = db_query("SELECT * FROM {lab_migration_experiment} WHERE proposal_id = :proposal_id ORDER BY number DESC LIMIT 1", array(
":proposal_id" => $proposal_id
));
if ($number_data = $number_q->fetchObject()) {
$number = (int) $number_data->number;
$number++;
} //$number_data = $number_q->fetchObject()
else {
$number = 1;
}
foreach ($form_state['values']['lab_experiment']['insert'] as $insert_id => $insert_value) {
if (strlen(trim($insert_value)) >= 1) {
$result = db_query("INSERT INTO {lab_migration_experiment} (proposal_id, number, title) VALUES (:proposal_id, :number, :title)", array(
":proposal_id" => $proposal_id,
":number" => $number,
":title" => trim($insert_value)
));
if (!$result) {
drupal_set_message(t('Could not insert Title of the Experiment : ') . trim($insert_value), 'error');
} //!$result
else {
$number++;
}
} //strlen(trim($insert_value)) >= 1
} //$form_state['values']['lab_experiment']['insert'] as $insert_id => $insert_value
drupal_set_message(t('Proposal Updated'), 'status');
}
// used to add new city in databse
function add_new_city_form($form,&$from_state)
{
$form['new_city_name'] = array(
'#type' => 'textfield',
'#title' => t('Enter New City'),
'#size' => 50,
'#description' => t('Enter new city name in first letter in uppercase. Example - Mumbai'),
'#maxlength' => 30,
'#required' => False,
'#attributes' => array(
'placeholder' => 'Enter new city name in ....'
),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit')
);
$form['cancel'] = array(
'#markup' => l(t('Cancel'), '')
);
return $form;
}
function add_new_city_form_validate($form,&$form_state)
{
$new_city_name = $form_state['values']['new_city_name'];
if (!preg_match("/^[a-zA-Z ]*$/", $new_city_name))
{
form_set_error('new_city_name', t('Only letters are allowed'));
}
$form_state['values']['new_city_name'] = nameize($new_city_name);
return;
}
function add_new_city_form_submit($form,&$form_state)
{
if($form_state['values']['new_city_name'])
{
$query = "SELECT city FROM list_cities_of_india WHERE city = :city";
$args = array(":city" => $form_state['values']['new_city_name']);
$result = db_query($query,$args)->fetchObject();
if(!$result)
{
db_query("INSERT INTO {list_cities_of_india} (city) VALUES (:city)",array(":city" => $form_state['values']['new_city_name']));
drupal_set_message("City has been added in database");
} else
{
drupal_set_message("City already present in database","error");
}
}
}
function nameize($str,$a_char = array("'","-"," ")){
$string = strtolower($str);
foreach ($a_char as $temp){
$pos = strpos($string,$temp);
if ($pos){
//we are in the loop because we found one of the special characters in the array, so lets split it up into chunks and capitalize each one.
$mend = '';
$a_split = explode($temp,$string);
foreach ($a_split as $temp2){
//capitalize each portion of the string which was separated at a special character
$mend .= ucfirst($temp2).$temp;
}
$string = substr($mend,0,-1);
}
}
return ucfirst($string);
}