Example #1
0
 public function getClassName($classNameToCompare = null, $instanceClassName = null)
 {
     if ($instanceClassName == 'UserAddress') {
         // pretend that 'ShippingAddress' or 'BillingAddress' are equal to 'UserAddress'
         return in_array($classNameToCompare, array('ShippingAddress', 'BillingAddress')) ? $classNameToCompare : $instanceClassName;
     }
     return parent::getClassName();
 }
Example #2
0
/**
 * This file is a part of MyWebSQL package
 *
 * @file:      modules/importtbl.php
 * @author     Samnan ur Rehman
 * @copyright  (c) 2008-2012 Samnan ur Rehman
 * @web        http://mywebsql.net
 * @license    http://mywebsql.net/license
 */
function processRequest(&$db)
{
    $importDone = FALSE;
    $message = '';
    $refresh = '0';
    $max_upload_size = min(bytes_value(ini_get('post_max_size')), bytes_value(ini_get('upload_max_filesize'))) / 1024;
    $max_upload_size_text = $max_upload_size < 1024 ? $max_upload_size . 'KB' : $max_upload_size / 1024 . ' MB';
    if (isset($_FILES['impfile'])) {
        if (v($_FILES['impfile']['tmp_name']) != '' && file_exists($_FILES['impfile']['tmp_name'])) {
            //$module_id = create_module_id( 'import' );
            include BASE_PATH . "/lib/import/import.php";
            $type = 'csv';
            $imptype = v($_REQUEST['$imptype']);
            if (in_array($imptype, DataImport::types())) {
                $type = $imptype;
            }
            $importer = DataImport::factory($db, $type);
            $options = extract_vars($_REQUEST, $importer->options());
            $result = $importer->importTable($_FILES['impfile']['tmp_name'], $options);
            $failed = $importer->getFailedQueries();
            $affected = $importer->getRowsAffected();
            if (!$result || $affected > 0 || $failed > 0) {
                $message .= '<div class="message ui-state-default">[ ' . str_replace('{{NUM}}', $affected, __('{{NUM}} record(s) were affected')) . '. ]</div>';
                if ($failed > 0) {
                    $message_tmp = $failed > 1 ? str_replace('{{NUM}}', $failed, __('{{NUM}} queries failed to execute')) : __('Error occurred while executing the query');
                    $message .= '<div class="message ui-state-error">' . $message_tmp . '</div>';
                    if ($failed == 1) {
                        $message .= '<div class="message ui-state-error">' . htmlspecialchars($importer->getError()) . '</div>';
                        $message .= '<div class="sql-text ui-state-error">' . htmlspecialchars($importer->getLastQuery()) . '</div>';
                    }
                }
            } else {
                $message .= '<div class="message ui-state-default">' . __('No queries were executed during import') . '.</div>';
            }
        } else {
            $message .= '<div class="message ui-state-error">' . __('File upload failed. Please try again') . '.</div>';
        }
        $importDone = TRUE;
    }
    if (!$importDone) {
        $message = '<div class="message ui-state-default">' . str_replace('{{SIZE}}', $max_upload_size_text, __('Maximum upload filesize is {{SIZE}}'));
        $message .= '<br/>' . str_replace('{{LIST}}', valid_import_files(), __('Supported filetypes / extensions are: ({{LIST}})')) . '</div>';
    } else {
        $refresh = '1';
    }
    include BASE_PATH . '/lib/html.php';
    $tables = html::arrayToOptions($db->getTables(), '', true, '');
    $replace = array('MESSAGE' => $message, 'MAX_SIZE' => $max_upload_size, 'REFRESH' => $refresh, 'TABLE_LIST' => $tables);
    echo view('importtbl', $replace);
}
Example #3
0
 public function getMissingRecordFilter(CsvImportProfile $profile)
 {
     $filter = parent::getMissingRecordFilter($profile);
     $filter->mergeCondition($this->getRoot($profile)->getProductCondition(true));
     return $filter;
 }
Example #4
0
 public function getClassName($instanceClass = null, $default = null)
 {
     return $instanceClass ? $instanceClass : parent::getClassName($instanceClass, $default);
 }
Example #5
0
 /**
  * 经销商上传下属机构信息
  */
 public function actionSubdealerupload()
 {
     //文件模板为product
     $template = "subdealer";
     $dealerID = Commonmodel::getOrganID();
     //上传文件
     if ($_POST['leadExcel'] == "true") {
         $filename = iconv("utf-8", "gb2312", $_FILES['inputExcel']['name']);
         $tmp_name = $_FILES['inputExcel']['tmp_name'];
         //$filePath = dirname(Yii::app()->BasePath) . "\\themes\\default\\uploadsfile\\dealer\\execl\\";
         $filePath = Yii::app()->params['uploadPath'] . '/dealer/execl/';
         $upload_result = UploadsFile::uploadFile($filename, $tmp_name, $filePath);
         //var_dump($upload_result);
         //如果上传成,则解析Excel文件
         if ($upload_result['success']) {
             //解析Excel文件,返回结果为错误消息,如果不为空则表明发生错误
             $uploadfile = $upload_result['uploadfile'];
             $dataImport = new DataImport();
             $endtime = time() + 24 * 60 * 60 * 2 * 7;
             $data = array('flag' => '1', 'UserID' => $dealerID);
             $result = $dataImport->parse($uploadfile, $template, $data);
             //如果不成功则返回错误结果
             if (!$result['success']) {
                 $message = $result['error'];
                 //var_dump($message);
                 $this->render('batchimport', array('message' => $message));
                 exit;
             }
             //var_dump($result);
             $insert_sql = $result['sql'];
             $sql_result = DbUtil::execute($insert_sql);
             //如果SQL执行不成功则返回错误结果
             if ($sql_result && !$sql_result['result']) {
                 $this->render('batchimport', array('message' => $sql_result['error']));
                 exit;
             }
             //查询上传成功的产品信息
             $message = "文件上传成功!";
             $this->redirect('subdealer');
         } else {
             $message = $upload_result['error'];
             $this->render('batchimport', array('message' => $message));
         }
     }
 }