示例#1
0
 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;
 }
示例#2
0
 /**
  * @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));
 }
示例#3
0
 /**
  * @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";
 }
示例#4
0
    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;');
示例#5
0
 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);
 }