function act_autoCreateSpu() { $data = array(); $prefix = trim($_POST['prefix']); if (!preg_match("/^[A-Z]{2}\$/", $prefix)) { self::$errCode = 11; self::$errMsg = 'error'; return false; } $prefixList = OmAvailableModel::getTNameList('pc_auto_create_spu_prefix', 'isSingSpu', "WHERE prefix='{$prefix}'"); $isSingSpu = $prefixList[0]['isSingSpu']; //该prefix下试单还是虚拟料号 $autoSpuList = OmAvailableModel::getTNameList('pc_auto_create_spu', 'sort', "WHERE spu REGEXP '^{$prefix}[0-9]{6}\$' order by sort desc limit 1"); $maxNumberAuto = $autoSpuList[0]['sort']; //auto表中最大的max $maxNumberTrue = OmAvailableModel::getMaxSpu($prefix, $isSingSpu); //对应goods表或combine表中最大的max $maxNumber = $maxNumberTrue > $maxNumberAuto ? $maxNumberTrue : $maxNumberAuto; //return $maxNumberTrue; //$maxNumber = OmAvailableModel::getMaxSpu($prefix, $isSingSpu); $spu = $prefix . str_pad($maxNumber + 1, 6, '0', STR_PAD_LEFT); $data = array('spu' => $spu, 'sort' => $maxNumber + 1, 'prefix' => $prefix, 'isSingSpu' => $isSingSpu); if (!empty($data)) { return $data; } else { self::$errCode = 1; self::$errMsg = 'error'; return false; } }
function act_searchOrAddCombineInfo() { $spu = isset($_GET['goods_sn']) ? post_check(trim($_GET['goods_sn'])) : ''; $amount = isset($_GET['amount']) ? $_GET['amount'] : ''; $amount = intval($amount); $combineUserId = isset($_GET['truename']) ? $_GET['truename'] : ''; $combineUserId = intval($combineUserId); $now = time(); if (!preg_match("/^[A-Z0-9]+\$/", $spu)) { //sku不合规范 self::$errCode = '101'; self::$errMsg = 'SPU不合法'; return false; } if ($amount <= 0) { //不是正数 self::$errCode = '102'; self::$errMsg = '数量不合法'; return false; } if ($combineUserId <= 0) { //不是正数 self::$errCode = '103'; self::$errMsg = '组合人id不合法'; return false; } $tName = 'pc_goods'; $select = 'spu,sku'; $where = "WHERE spu='{$spu}' and is_delete=0"; $pcGoodsList = OmAvailableModel::getTNameList($tName, $select, $where); if (empty($pcGoodsList)) { //如果spu找不到 $select = 'spu,sku'; $where = "WHERE sku='{$spu}' and is_delete=0"; $pcGoodsList = OmAvailableModel::getTNameList($tName, $select, $where); if (empty($pcGoodsList)) { //spu找不到去sku找 self::$errCode = '104'; self::$errMsg = "SPU {$spu} 不存在"; return false; } } $tName = 'pc_sku_combine_relation'; $select = '*'; $where = "WHERE sku REGEXP '^{$spu}(_[A-Z0-9]+)*\$' and count={$amount} and combineSku REGEXP '^CB[0-9]{6}(_[A-Z0-9]+)*\$'"; //符合条件 $pcCombineRelList = OmAvailableModel::getTNameList($tName, $select, $where); if (!empty($pcCombineRelList)) { //如果真实料号对应的虚拟料号存在,则直接返回 $arr = array(); $arrDetail = array(); foreach ($pcCombineRelList as $value) { $arrTmp = array(); $arrTmp['CBSku'] = $value['combineSku']; $arrTmp['bindSku'] = $value['sku'] . '*' . $amount; $arrDetail[] = $arrTmp; } $arr['spu'] = substr($pcCombineRelList[0]['combineSku'], 0, 8); //spu $arr['detail'] = $arrDetail; self::$errCode = '200'; self::$errMsg = "信息存在,查询返回成功"; return json_encode($arr); } else { //如果不存在的话,则插入数据,然后再返回,此时要现在autoCreateSpu表中和combine表中,选出最大的CB为前缀的数字 $numberCombine = OmAvailableModel::getMaxSpu('CB', 2); //取得pc_goods_combine表中以CB为前缀的最大的数字 $tName = 'pc_auto_create_spu'; $select = 'spu'; $where = "WHERE prefix='CB' order by sort desc limit 1"; $autoCreSpuList = OmAvailableModel::getTNameList($tName, $select, $where); $numberAutoCreSpu = intval(substr($autoCreSpuList[0]['spu'], 2, 6)); $maxNumber = $numberCombine > $numberAutoCreSpu ? $numberCombine : $numberAutoCreSpu; $maxNumber = $maxNumber + 1; //要生成CB为前缀的最大数字 try { BaseModel::begin(); $arr = array(); //返回数组 $arrDetail = array(); //要同步到深圳ERP组合料号的数据变量 $insertIdCom = 1; //添加组合料号的insert_id $dataRelation = array(); //关联真实料号的数组 $dataRelationMem = array(); //关联真实料号的mem $ebayProductsCombineArr = array(); if (count($pcGoodsList) == 1) { //如果真实SPU料号只有一条记录的话,表示该SPU下没有分料号 $tmpSpu = 'CB' . str_pad($maxNumber, 6, '0', STR_PAD_LEFT); $tName = 'pc_auto_create_spu'; $set = "SET spu='{$tmpSpu}',purchaseId='{$combineUserId}',createdTime='{$now}',sort='{$maxNumber}',status=2,prefix='CB',isSingSpu=2"; OmAvailableModel::addTNameRow($tName, $set); //add by zqt ,20140403 添加关联销售记录 //addSalerInfoForAny($tmpSpu, 2, $combineUserId, $combineUserId);//改变逻辑 $tName = 'pc_goods_combine'; $set = "SET combineSpu='{$tmpSpu}',combineSku='{$tmpSpu}',combineUserId={$combineUserId},addTime='{$now}'"; $insertIdCom = OmAvailableModel::addTNameRow($tName, $set); $tName = 'pc_sku_combine_relation'; $set = "SET combineSku='{$tmpSpu}',sku='{$pcGoodsList[0]['sku']}',count={$amount}"; OmAvailableModel::addTNameRow($tName, $set); $arr['spu'] = $tmpSpu; $arrTmp = array(); $arrTmp['CBSku'] = $tmpSpu; $arrTmp['bindSku'] = $pcGoodsList[0]['sku'] . '*' . $amount; $arrDetail[] = $arrTmp; $arr['detail'] = $arrDetail; $dataRelation[] = array('combineSku' => $tmpSpu, 'sku' => $pcGoodsList[0]['sku'], 'count' => $amount); $dataRelationMem[] = array('sku' => $pcGoodsList[0]['sku'], 'count' => $amount); //将新添加的sku添加到mem中 $dataCom = array(); $dataCom['combineSpu'] = $tmpSpu; $dataCom['combineSku'] = $tmpSpu; $dataCom['combineNote'] = $amount . '个' . $pcGoodsList[0]['sku'] . '#'; $dataCom['combineUserId'] = $combineUserId; $dataCom['addTime'] = time(); $dataCom['detail'] = $dataRelationMem; $value = $dataCom; $key = 'pc_goods_combine_' . $tmpSpu; setMemNewByKey($key, $value); //这里不保证能添加成功 //同步新数据到旧系统中 $ebayProductsCombine = array(); $ebayProductsCombine['id'] = $insertIdCom; $ebayProductsCombine['goods_sn'] = $tmpSpu; $str = $pcGoodsList[0]['sku'] . '*' . $amount; $strTrue = '[' . $pcGoodsList[0]['sku'] . ']'; $ebayProductsCombine['goods_sncombine'] = $str; $ebayProductsCombine['cguser'] = getPersonNameById($combineUserId); $ebayProductsCombine['ebay_user'] = '******'; $ebayProductsCombine['createdtime'] = time(); $ebayProductsCombine['truesku'] = $strTrue; $ebayProductsCombineArr[] = $ebayProductsCombine; } else { //有分料号 $tmpSpu = 'CB' . str_pad($maxNumber, 6, '0', STR_PAD_LEFT); $tName = 'pc_auto_create_spu'; $set = "SET spu='{$tmpSpu}',purchaseId='{$combineUserId}',createdTime='{$now}',sort='{$maxNumber}',status=2,prefix='CB',isSingSpu=2"; OmAvailableModel::addTNameRow($tName, $set); //add by zqt ,20140403 添加关联销售记录 //addSalerInfoForAny($tmpSpu, 2, $combineUserId, $combineUserId);//改变逻辑 $i = 0; foreach ($pcGoodsList as $value) { $suffTmp = explode($spu, $value['sku']); $suff = isset($suffTmp[1]) ? $suffTmp[1] : ''; //取得分料号去除SPU后的后缀 $i++; if (strpos($suff, '_') !== 0) { //如果找出的spu下的sku不带_,则默认按1,2,3,来区分 $suff = '_' . $i; } $tmpSku = 'CB' . str_pad($maxNumber, 6, '0', STR_PAD_LEFT) . $suff; $tmpSku = trim($tmpSku); $goods_sncom = $value['sku'] . '*' . $amount; $now = time(); $tName = 'pc_goods_combine'; $set = "SET combineSpu='{$tmpSpu}',combineSku='{$tmpSku}',combineUserId='{$combineUserId}',addTime='{$now}'"; $insertIdCom = OmAvailableModel::addTNameRow($tName, $set); $tName = 'pc_sku_combine_relation'; $set = "SET combineSku='{$tmpSku}',sku='{$value['sku']}',count={$amount}"; OmAvailableModel::addTNameRow($tName, $set); $arrTmp = array(); $arrTmp['CBSku'] = $tmpSku; $arrTmp['bindSku'] = $goods_sncom; $arrDetail[] = $arrTmp; $dataRelation[] = array('combineSku' => $tmpSku, 'sku' => $value['sku'], 'count' => $amount); $dataRelationMem[] = array('sku' => $value['sku'], 'count' => $amount); //将新添加的sku添加到mem中 $dataCom = array(); $dataCom['combineSpu'] = $tmpSpu; $dataCom['combineSku'] = $tmpSku; $dataCom['combineNote'] = $amount . '个' . $value['sku'] . '#'; $dataCom['combineUserId'] = $combineUserId; $dataCom['addTime'] = time(); $dataCom['detail'] = $dataRelationMem; $valueMem = $dataCom; $key = 'pc_goods_combine_' . $tmpSku; setMemNewByKey($key, $valueMem); //这里不保证能添加成功 //同步新数据到旧系统中 $ebayProductsCombine = array(); $ebayProductsCombine['id'] = $insertIdCom; $ebayProductsCombine['goods_sn'] = $tmpSku; $str = $value['sku'] . '*' . $amount; $strTrue = '[' . $value['sku'] . ']'; $ebayProductsCombine['goods_sncombine'] = $str; $ebayProductsCombine['cguser'] = getPersonNameById($combineUserId); $ebayProductsCombine['ebay_user'] = '******'; $ebayProductsCombine['createdtime'] = time(); $ebayProductsCombine['truesku'] = $strTrue; $ebayProductsCombineArr[] = $ebayProductsCombine; } $arr['spu'] = $tmpSpu; $arr['detail'] = $arrDetail; } BaseModel::commit(); BaseModel::autoCommit(); if (!empty($tmpSpu)) { //添加销售人员信息 addSalerInfoForAny($tmpSpu, 2, $combineUserId, $combineUserId); } $dataAuto = array(); $dataAuto['sku'] = $tmpSpu; $dataAuto['cguser'] = getPersonNameById($combineUserId); $dataAuto['mainsku'] = $maxNumber; $dataAuto['status'] = 2; $dataAuto['addtime'] = time(); $dataAuto['type'] = 7; OmAvailableModel::newData2ErpInterfOpen('pc.erp.addAutoCreatSpu', $dataAuto, 'gw88'); //插入自動生成spu foreach ($ebayProductsCombineArr as $value) { $ret = OmAvailableModel::newData2ErpInterfOpen('pc.erp.addGoodsCombine', $value, 'gw88'); //插入生成的CB料號 } self::$errCode = '200'; self::$errMsg = "不存在真实料号信息,插入记录成功"; return json_encode($arr); } catch (Exception $e) { BaseModel::rollback(); BaseModel::autoCommit(); self::$errCode = '404'; self::$errMsg = $e->getMessage(); return false; } } }