function GoodsHeadArr($standardid) { $basis = array('goods_no' => '商品编号(必填)', 'goods_name' => '商品名称(必填)', 'brand' => '品牌', 'goods_oe' => 'OE号(必填,多个OE号以逗号隔开)', 'carmodel' => '适用车型', 'benchmarking_brand' => '标杆品牌', 'benchmarking_sn' => '标杆商品号', 'inventory' => '库存(有/无)', 'senddays' => '发货天数', 'description' => '备注'); $organID = Commonmodel::getOrganID(); $datas = MakeGoodsTemplate::model()->findAll('organID=' . $organID . ' and ISdelete="N" and standard_id=' . $standardid); $paramsname = array(); // 参数名称 if ($datas) { foreach ($datas as $data) { $paramsname['_' . $data['id']] = $data['name']; } } self::$GoodsRows = array_merge($basis, $paramsname); }
/** * 批量上传商品 */ public function actionUploadgoods() { $this->pageTitle = Yii::app()->name . '-' . "商品管理"; //文件模板为product $template = "makergoods"; $userID = Yii::app()->user->id; $organID = Commonmodel::getOrganID(); //上传文件 if ($_POST['leadExcel'] == "true") { $filename = rand(1000, 10000) . Yii::app()->user->id . strrchr($_FILES['inputExcel']['name'], '.'); // $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'] . 'maker/excel/' . $organID . '/'; $upload_result = UploadsFile::uploadFile($filename, $tmp_name, $filePath); //如果上传成,则解析Excel文件 if ($upload_result['success']) { //解析Excel文件,返回结果为错误消息,如果不为空则表明发生错误 $uploadfile = $upload_result['uploadfile']; $dataImport = new MakeGoodsImport(); $dataImport->GoodsHeadArr(Yii::app()->request->getParam('importCategory')); $createtime = time(); $data = array('OrganID' => $organID, 'UserID' => $userID, 'CreateTime' => $createtime); $result = $dataImport->parse($uploadfile, $template, $data); //如果不成功则返回错误结果 if ($result['success'] == false) { echo json_encode(array('message' => $result['error'], 'success' => false)); Yii::app()->end(); } $templaterRows = $result['templaterRows']; $Sdata = $result['Sdata']; // $bool = false; $message = array(); if ($Sdata && $templaterRows) { $Cpname = DealerCpname::model()->find("OrganID=:organID and CpNameID=:CpNameID", array(':organID' => $organID, ":CpNameID" => Yii::app()->request->getParam('importCategory'))); $com = 0; $errkey = 0; //调用商品编号验证唯一性 $res = $this->checkgoodno(); $version_sql = "insert into tbl_make_goods_version (\n version_name, organID,userID,goods_oe,\n goods_brand,goods_id,goods_no,goods_name,benchmarking_brand,benchmarking_sn,\n standard_id,inventory,senddays,description\n ) values"; $value_sql = "insert into tbl_make_goods_values (organID,userID,standard_id,value,version_name,goods_id,template_id)\n values"; $excel_no = array(); foreach ($Sdata as $key => $dval) { $makegoods = new MakeGoods(); $makegoodsvesion = new MakeGoodsVersion(); $vesionAtt = $makegoodsvesion->attributes; $arr = array(); $continue = false; $k = 0; $dval[$k] = ltrim($dval[$k]); if (in_array($dval[$k], $res)) { $message[$errkey] = "第" . ($com + 1) . "条数据导入失败 原因:商品编号已存在"; $errkey++; $continue = true; } if (!empty($excel_no) && in_array($dval[$k], $excel_no)) { $message[$errkey] = "第" . ($com + 1) . "条数据导入失败 原因:Excel表格中有重复的商品编号"; $errkey++; $continue = true; } if (empty($dval[$k]) && $dval[$k] != 0) { $message[$errkey] = "第" . ($com + 1) . "条数据导入失败 原因:商品编号为空"; $errkey++; $continue = true; } foreach ($templaterRows as $pkey => $pval) { // if ($pval == 'goods_no') { // $dval[$k] = ltrim($dval[$k]); // if (empty($dval[$k])) { // $message[$errkey] = "第" . ($com + 1) . "条数据导入失败 原因:商品编号为空"; // $errkey++; // $continue = true; // } else { // if(in_array($dval[$k],$res)) // { // $message[$errkey] = "第" . ($com + 1) . "条数据导入失败 原因:商品编号已存在"; // $errkey++; // $continue = true; // } // // $ifcontinue = MakeGoodsVersion::model()->find("goods_no=:NO and ISdelete=0 and organID=:organID", array(":NO" => $dval[$k],':organID'=>$organID)); // } // } // if (!empty($ifcontinue)) { // $message[$errkey] = "第" . ($com + 1) . "条数据导入失败 原因:商品编号已存在"; // $errkey++; // $continue = true; // } // $ifcontinue = ""; if ($pval == 'goods_name') { $dval[$k] = ltrim($dval[$k]); if (empty($dval[$k]) && $dval[$k] != 0) { $message[$errkey] = "第" . ($com + 1) . "条数据导入失败 原因:商品名称为空"; $errkey++; $continue = true; } } if ($pval == 'goods_oe') { $dval[$k] = ltrim($dval[$k]); $dval[$k] = str_replace(",", ",", $dval[$k]); if (empty($dval[$k]) && $dval[$k] != 0) { $message[$errkey] = "第" . ($com + 1) . "条数据导入失败 原因:商品OE号为空"; $errkey++; $continue = true; } } if (substr($pval, 0, 1) == '_') { $pval = substr($pval, 1); $arr[$k]['value'] = $dval[$k]; $arr[$k]['template_id'] = $pval; } else { if ($pval == 'brand') { $vesionAtt["goods_brand"] = $this->getBrandID($dval[$k]); } elseif ($pval == 'inventory') { if ($dval[$k] == '有') { $vesionAtt[$pval] = 1; } else { $vesionAtt[$pval] = 0; } } else { $vesionAtt[$pval] = $dval[$k]; } } $k++; } $com++; if ($continue) { continue; } $excel_no[$k] = $dval[$k]; //$makegoodsvesion->attributes = $vesionAtt; $time = time(); $goods_sql = "insert into tbl_make_goods (create_time,updatetime,organID,userID,NewVersion)\n\t\t\t\t\t\t\t\tvalue ({$time},{$time},{$organID},{$userID},'V1.0.0')"; $goods_res = DBUtil::execute($goods_sql); $a = 1; $lastGoodsID = Yii::app()->db->getLastInsertID(); if ($goods_res) { $a = 2; //执行版本表 $version_sql .= " ('V1.0.0',{$organID},{$userID},'{$vesionAtt['goods_oe']}','{$vesionAtt['goods_brand']}',{$lastGoodsID},\n\t\t\t\t\t\t\t\t'{$vesionAtt['goods_no']}','{$vesionAtt['goods_name']}','{$vesionAtt['benchmarking_brand']}',\n \t '{$vesionAtt['benchmarking_sn']}',{$Cpname->CpNameID},'{$vesionAtt['inventory']}','{$vesionAtt['senddays']}'\n \t ,'{$vesionAtt['description']}'),"; //生产参数值sql foreach ($arr as $kv => $vval) { $value_sql .= " ({$organID},{$userID},'{$Cpname->CpNameID}','{$vval['value']}','V1.0.0','{$lastGoodsID}','{$vval['template_id']}'),"; } //插入适用车型 if ($vesionAtt[carmodel] || $vesionAtt[carmodel] == 0) { $pinyin = F::pinyin1($vesionAtt[carmodel]); $carmodel_sql = "insert into tbl_make_goods_vehicle (CreateTime,UpdateTime,OrganID,UserID,VersionName,GoodsID,`Name`,PinYin)\n value ({$time},{$time},{$organID},{$userID},'V1.0.0',{$lastGoodsID},'{$vesionAtt['carmodel']}','{$pinyin}')"; $carmodel_res = DBUtil::execute($carmodel_sql); } } } } if ($a == 2) { $version_sql = rtrim($version_sql, ","); $version_sql = preg_replace('/\\\\/', '/', $version_sql); $version_res = DBUtil::execute($version_sql . ';'); $value_sql = rtrim($value_sql, ","); $value_sql = preg_replace('/\\\\/', '/', $value_sql); $value_res = DBUtil::execute($value_sql . ';'); } // $insert_sql = $result['sql']; // // $sql_result = DBUtil::execute($insert_sql); //如果SQL执行不成功则返回错误结果 if (!empty($message)) { // foreach ($message as $key => $val) { // $resDa.="<span class='errcolor'>$val</span><br>"; // // } echo json_encode(array('success' => false, 'message' => $message)); Yii::app()->end(); } else { // 上传成功,则把上传成功的数据展示出来 echo json_encode(array('success' => true, 'message' => '导入商品成功')); Yii::app()->end(); } } else { $message = $upload_result['error']; echo json_encode(array('success' => false, 'message' => $message)); Yii::app()->end(); } } }