コード例 #1
0
ファイル: MakeGoodsImport.php プロジェクト: zwq/unpei
 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);
 }
コード例 #2
0
ファイル: MakegoodsController.php プロジェクト: zwq/unpei
 /**
  * 批量上传商品
  */
 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();
         }
     }
 }