protected function checkImportEssentialField($type)
 {
     $mandatoryFields = EfrontImport::getMandatoryFields($type);
     $not_found = false;
     foreach ($mandatoryFields as $dbField => $columnName) {
         if (!isset($this->mappings[$dbField])) {
             $not_found = true;
             break;
         }
     }
     if ($not_found) {
         $this->log["failure"]["headerproblem"] = _HEADERDOESNOTINCLUDEESSENTIALCOLUMN . ": " . implode(",", $mandatoryFields);
         return false;
     } else {
         return true;
     }
 }
$importForm->addElement('advcheckbox', 'replace_assignments', _REPLACEASSIGNMENTS, null, 'class = "inputCheckbox"', array(0, 1));
$importForm->addElement("select", "date_format", _DATEFORMAT, array("DD/MM/YYYY" => "DD/MM/YYYY", "MM/DD/YYYY" => "MM/DD/YYYY", "YYYY/MM/DD" => "YYYY/MM/DD"));
$importForm->setDefaults(array('import_keep' => 0));
$importForm->addElement('submit', 'submit_import', _IMPORTDATA, 'class = "flatButton"');
$help_info = array();
foreach ($import_export_types as $type => $name) {
    if ($type != "anything") {
        $help_info[$type] = array("mandatory" => implode(", ", EfrontImport::getMandatoryFields($type)), "optional" => implode(", ", EfrontImport::getOptionalFields($type)), "sample_type" => $type);
    }
}
$smarty->assign("T_HELP_IMPORT_INFO", $help_info);
if (isset($_GET['csv_sample']) && $_GET['csv_sample'] == 1 && isset($_GET['sample_type'])) {
    $sample_type = $_GET['sample_type'];
    header("content-type:text/plain");
    header('content-disposition: attachment; filename= "csv_' . $sample_type . '_sample.csv"');
    echo implode(",", EfrontImport::getMandatoryFields($sample_type)) . "," . implode(",", EfrontImport::getOptionalFields($sample_type)) . "\n";
    exit;
}
if ($importForm->isSubmitted()) {
    try {
        if (!is_dir($currentUser->user['directory'] . "/temp")) {
            mkdir($currentUser->user['directory'] . "/temp", 0755);
        }
        $importForm->exportValue('import_keep') ? $replaceUsers = false : ($replaceUsers = true);
        $filesystem = new FileSystemTree($currentUser->user['directory'] . "/temp");
        $uploadedFile = $filesystem->uploadFile('import_file');
        $options = array("replace_existing" => $replaceUsers, "date_format" => $importForm->exportValue('date_format'), "replace_assignments" => $importForm->exportValue('replace_assignments'));
        $importer = EfrontImportFactory::factory("csv", $uploadedFile, $options);
        $importType = $importForm->exportValue('import_type');
        if ($importType == "anything") {
            $import_types = $import_export_types;