public static function ExportQuarterlyForms() { include_once Core::LibDir() . DS . 'easycsv' . DS . 'EasyCsv.php'; include_once dirname(__DIR__) . DS . 'database' . DS . 'ScheduleDatabase.php'; $db = ScheduleDatabase::GetInstance(); include_once __DIR__ . '/RWAForm.php'; $fieldsNames = array_unique(array_merge(array('id', 'code', 'submitDate', 'formDate'), RWAForm::GetFieldNames('quarterly'))); $csv = EasyCsv::CreateCsv($fieldsNames); $db->iterateAllQuarterlys(function ($record) use(&$csv, $fieldsNames) { $form = get_object_vars(json_decode($record->formData)); $values = array(); foreach ($fieldsNames as $field) { if (key_exists($field, $form)) { $theValue = $form[$field]; if (is_object($theValue) || is_array($theValue)) { $theValue = json_encode($theValue); } $values[] = $theValue; } else { $values[] = ""; } } $values[0] = $record->id; $values[1] = $record->code; $values[2] = $record->submitDate; $values[3] = $record->formDate; EasyCsv::AddRow($csv, $values); }); header('Content-Type: application/csv;'); header('Content-disposition: filename="rwa-export-quarterly-' . date('Y-m-d') . '.csv"'); echo EasyCsv::Write($csv); return; }
/** * @runInSeparateProcess */ public function testFormsMetadata() { $this->_includeScaffolds(); include_once dirname(__DIR__) . '/forms/lib/RWAForm.php'; $formFields = json_decode(file_get_contents(__DIR__ . '/fields.json')); $this->assertEquals(json_encode($formFields->scheduled, JSON_PRETTY_PRINT), json_encode(RWAForm::GetFieldNames('scheduled'), JSON_PRETTY_PRINT)); $this->assertEquals(json_encode($formFields->addendum, JSON_PRETTY_PRINT), json_encode(RWAForm::GetFieldNames('addendum'), JSON_PRETTY_PRINT)); $this->assertEquals(json_encode($formFields->quarterly, JSON_PRETTY_PRINT), json_encode(RWAForm::GetFieldNames('quarterly'), JSON_PRETTY_PRINT)); }
/** * @runInSeparateProcess */ public function testExportFormsMetadata() { $this->_includeCore(); include_once Core::LibDir() . DS . 'easycsv' . DS . 'EasyCsv.php'; include_once dirname(__DIR__) . DS . 'forms/database' . DS . 'ScheduleDatabase.php'; include_once dirname(__DIR__) . DS . 'forms/lib' . DS . 'RWAForm.php'; $db = ScheduleDatabase::GetInstance(); $fieldsNames = RWAForm::GetFieldNames('scheduled'); $fieldValuesArray = array(); $db->iterateAllSchedules(function ($record) use($fieldsNames, &$fieldValuesArray) { $form = get_object_vars(json_decode($record->formData)); $values = array(); foreach ($fieldsNames as $field) { if (key_exists($field, $form)) { $values[] = $form[$field]; } else { $values[] = ""; } } $fieldValuesArray[] = $values; }); echo print_r($fieldsNames, true) . print_r($fieldValuesArray, true) . "\n"; }
include_once __DIR__ . DS . 'lib' . DS . 'Ajax.php'; Ajax::SaveUserData(); return; } elseif (UrlVar('task') == 'user-data') { include_once __DIR__ . DS . 'lib' . DS . 'Ajax.php'; Ajax::GetUserData(); return; } elseif (UrlVar('task') == 'assign-user') { Ajax::AssignFormToUser(); return; } elseif (UrlVar('task') == 'export-formatted') { include_once Core::LibDir() . DS . 'easycsv' . DS . 'EasyCsv.php'; include_once __DIR__ . DS . 'database' . DS . 'ScheduleDatabase.php'; $db = ScheduleDatabase::GetInstance(); include_once __DIR__ . '/lib/RWAForm.php'; $fieldsNames = RWAForm::GetFieldNames('scheduled'); $csv = EasyCsv::CreateCsv($fieldsNames); $db->iterateAllSchedules(function ($record) use(&$csv, $fieldsNames) { $form = get_object_vars(json_decode($record->formData)); $form['id'] = $record->id; $values = array(); foreach ($fieldsNames as $field) { if (key_exists($field, $form)) { $values[] = $form[$field]; } else { $values[] = ""; } } EasyCsv::AddRow($csv, $values); }); //header('Content-Type: application/csv;');
public static function _CreateNewQuarterlyForUser($uid = -1) { include_once __DIR__ . DS . 'RWAForm.php'; $data = RWAForm::ValidateAddendumData(json_decode(UrlVar('json'))); /* @var $db ScheduleDatabase */ include_once dirname(__DIR__) . DS . 'database' . DS . 'ScheduleDatabase.php'; $db = ScheduleDatabase::GetInstance(); $entry = array('code' => $data->{'participant-id'}, 'formDate' => RWAForm::GetFormDate($data)); if ($uid >= 0) { $entry['uid'] = $uid; } $update = false; if (key_exists('id', $data)) { if ($data->id > 0) { $entry['id'] = $data->id; $id = $data->id; $update = true; } unset($data->id); } $entry['formData'] = json_encode($data, JSON_PRETTY_PRINT); if ($update) { $db->updateQuarterly($entry); } else { $date = date('Y-m-d H:i:s'); $entry['submitDate'] = $date; $entry['uid'] = Core::Client()->getUserId(); $id = $db->createQuarterly($entry); } echo json_encode(array('success' => true, 'result' => array('id' => $id)), JSON_PRETTY_PRINT); }