Skip to content

Instantly share code, notes, and snippets.

@arturo-c
Last active August 29, 2015 13:58
Show Gist options
  • Save arturo-c/10412841 to your computer and use it in GitHub Desktop.
Save arturo-c/10412841 to your computer and use it in GitHub Desktop.
Update usar submissions
<?php
function get_usar_submissions() {
// Get the blank webform ucids.
$mid_ucid = db_select('webform_component_unique', 'wcu')
->fields('wcu', array('ucid'))
->condition('nid', 4194858)
->condition('form_key', 'org__sequential_id__org_webform')
->execute()
->fetchField();
$mid_ucid = (int) $mid_ucid;
$collection = mongodb_collection('webform_submissions');
$cursor = $collection->find();
$total = $cursor->count();
$update_count = 0;
$new_submissions = array();
foreach ($cursor as $submission) {
$update = FALSE;
if (!empty($submission['data'])) {
foreach ($submission['data'] as $ucid => $value) {
if ($mid_ucid == $ucid && strlen((string)$value['value'][0]) > 6) {
$update_count++;
// Store all the submissions that need to be deleted.
$new_submissions[] = $submission;
unset($submission['data'][$ucid]);
$update = TRUE;
}
}
if ($update) {
$collection->update(array(
'_id' => $submission['_id']),
array(
'$set' => array(
'data' => $submission['data']
)
)
);
}
}
}
drush_print('Submission count : ' . $update_count);
return $new_submissions;
}
function update_usar_submissions($submissions) {
// Get the blank webform ucids.
$mid_ucid = db_select('webform_component_unique', 'wcu')
->fields('wcu', array('ucid'))
->condition('nid', 4194858)
->condition('form_key', 'org__sequential_id__org_webform')
->execute()
->fetchField();
$mid_ucid = (int) $mid_ucid;
$node = node_load(4194858);
foreach ($node->webform['components'] as $component) {
if ($component['type'] == 'sequential_id') {
$mid_component = $component;
}
}
$update_count = 0;
$collection = mongodb_collection('webform_submissions');
foreach ($submissions as $submission) {
// Change the member id to be 6 digits.
$submission['data'][$mid_ucid]['value'][0] = webform_sequential_id_acquire_id($mid_component);
$update_count++;
$collection->update(array(
'_id' => $submission['_id']),
array(
'$set' => array(
'data' => $submission['data']
)
)
);
}
drush_print('Updated : ' . $update_count);
}
$submissions = get_usar_submissions();
update_usar_submissions($submissions);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment