Model_logic_u9tools.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. <?php
  2. /**
  3. * 封装一些转化为u9数据的操作
  4. */
  5. class Model_logic_u9tools extends Lin_Model {
  6. function __construct(){
  7. parent::__construct();
  8. $this->load->_model('Model_classid','classid');
  9. $this->load->_model('Model_typeclass','typeclass');
  10. $this->load->_model("Model_logic_tools",'logic_tools');
  11. }
  12. //获取u9的料号
  13. public function getU9bm(array $list,$sku_name){
  14. if(empty($list)){
  15. return [];
  16. }
  17. $tcjm = []; $typeclass = [];
  18. $classid = $this->classid->sku();
  19. $tcall = $this->typeclass->find_all();
  20. foreach ($tcall as $v)
  21. {
  22. //$tcjm[$v['id']] = array($v['jm'],$v['classid']);
  23. $typeclass[$v['id']] = array('zh'=>$v['zh'],'classid'=>$v['classid'],'bm'=>$v['bm'],'title'=>$v['title'],'jm'=>$v['jm']);
  24. }
  25. foreach($list as $k=>$v){
  26. $r = $this->getOneU9bm($v[$sku_name],$classid,$typeclass);
  27. $list[$k]['jm'] = $r['jm'];
  28. $list[$k]['zh'] = $r['zh'];
  29. $list[$k]['bm'] = $r['bm'];
  30. }
  31. return $list;
  32. }
  33. public function getOneU9bm($sku,$classid,$typeclass){
  34. $bm = '03';
  35. $ret_arr = [
  36. 'jm'=>"",//料号,SKU
  37. 'zh'=>"",//产品名称
  38. 'bm'=>"",//主分类下的编码
  39. ];
  40. if(stripos($sku,'-131-') !== false)
  41. {
  42. return $ret_arr;
  43. }
  44. $pm = $classid;
  45. $jm = $classid;
  46. $bmpx = array(13=>'',16=>'',18=>'',25=>'',26=>'',41=>'');
  47. $features = str_replace(array('-163-','-164-','-165-','-166-'),'-',$sku);
  48. $features = explode("-",trim($sku,'-'));
  49. foreach($features as $k=>$v)
  50. {
  51. if(isset($typeclass[$v]) && isset($bmpx[$typeclass[$v]['classid']]))
  52. {
  53. if($typeclass[$v]['bm'] != '')
  54. {
  55. $bmpx[$typeclass[$v]['classid']] = $typeclass[$v]['bm'];
  56. }
  57. }
  58. if($v != 0)
  59. {
  60. if(isset($pm[$typeclass[$v]['classid']]))
  61. {
  62. if($typeclass[$v]['title'] == '9A')
  63. {
  64. $pm[$typeclass[$v]['classid']] = '9A';
  65. }
  66. else if($typeclass[$v]['title'] == '10A')
  67. {
  68. $pm[$typeclass[$v]['classid']] = '10A';
  69. }
  70. else
  71. {
  72. $clzh = $typeclass[$v]['zh'];
  73. if(stripos($typeclass[$v]['zh'],'|') !== false)
  74. {
  75. $clzh = explode('|',rtrim($typeclass[$v]['zh'],'|'));
  76. $clzh = $clzh[0];
  77. }
  78. $pm[$typeclass[$v]['classid']] = $clzh;
  79. }
  80. }
  81. if(isset($jm[$typeclass[$v]['classid']]))
  82. {
  83. if($typeclass[$v]['jm'])
  84. {
  85. $jm[$typeclass[$v]['classid']] = $typeclass[$v]['jm'];
  86. }
  87. }
  88. }
  89. }
  90. $jm = array_filter($jm);//去除空值
  91. $jm = implode("-",$jm);
  92. $pm = array_filter($pm);//去除空值
  93. $zh = implode(" ",$pm);
  94. $zh = preg_replace("/\r\n|\r|\n/",'',trim($zh,' '));
  95. return [
  96. 'jm'=>$jm,//料号,SKU
  97. 'zh'=>$zh,//产品名称
  98. 'bm'=>$bm.implode("",$bmpx),//主分类下的编码
  99. ];
  100. }
  101. /**
  102. * 通过erp的组合出来的sku反推出erp的sku的id组合和u9的编码以及中文名和料品 这种仅限于满足老代码排序的那种 要是不满足 再重新开一个方法吧
  103. */
  104. public function getGoodInfoByErpSku($category,$sku,$typeclass,$typeclassid,$classid){
  105. $sku_arr = explode("-",trim($sku,"-"));
  106. $sku_list = [];
  107. $flag = false;
  108. $err_msg = "";
  109. foreach($sku_arr as $v){
  110. if(!isset($typeclass[$v])){
  111. $err_msg="u9组合的[".$v."]不存在,请核对";
  112. $flag = true;
  113. }else{
  114. $sku_list[$typeclass[$v]['classid']] = $typeclass[$v];
  115. }
  116. }
  117. if($flag){
  118. return $this->logic_tools->ret_arr(-1,$err_msg."异常行的料号为【".$sku."】");
  119. }
  120. if($category == "发条"){
  121. $cate = 126;
  122. }elseif($category == "发块前头"){
  123. $cate = 127;
  124. }elseif($category == "头套"){
  125. $cate = 128;
  126. }elseif($category == "接发"){
  127. $cate = 130;
  128. }elseif($category == "礼物"){
  129. $cate = 131;
  130. }
  131. elseif($category == "配件"){
  132. $cate = 133;
  133. }
  134. elseif($category == "化纤头套"){
  135. $cate = 1297;
  136. }
  137. elseif($category == "化纤其它"){
  138. $cate = 1702;
  139. }
  140. else{
  141. return $this->logic_tools->ret_arr(-1,"分类异常请手动输入"."异常行的料号为【".$sku."】");
  142. }
  143. $list['category'] = $cate; //类目
  144. if(isset($sku_list[22])){
  145. $list['hairtype'] = $sku_list[22]['id']; //真人发类型
  146. }
  147. if(isset($sku_list[13])){
  148. $list['grade'] = $sku_list[13]['id'];//等级
  149. }
  150. if(isset($sku_list[14])){
  151. $list['size'] = $sku_list[14]['id'];//长度
  152. }
  153. if(isset($sku_list[43])){
  154. $list['hairnumber'] = $sku_list[43]['id'];//人发头套编号
  155. }
  156. if(isset($sku_list[33])){
  157. $list['extension'] = $sku_list[33]['id'];//Extension类型
  158. }
  159. if( $cate == 1297)
  160. {
  161. if(isset($sku_list[40])){
  162. $list['sywignumber'] = $sku_list[40]['id'];//化纤头套编号
  163. }
  164. }
  165. if( $cate == 1702)
  166. {
  167. if(isset($sku_list[47])){
  168. $list['syhairnumber'] = $sku_list[47]['id'];//化纤发编号
  169. }
  170. if(isset($sku_list[46])){
  171. $list['syother'] = $sku_list[46]['id'];//化纤其它分类
  172. }
  173. }
  174. if($cate == 133)
  175. {
  176. if(isset($sku_list[35])){
  177. $list['fittype'] = $sku_list[35]['id'];//配件类型
  178. }
  179. if(isset($sku_list[45])){
  180. $list['acother'] = $sku_list[45]['id'];//配件其他
  181. }
  182. }
  183. if(isset($sku_list[8])){
  184. $list['color'] = $sku_list[8]['id'];//头发颜色
  185. }
  186. if(isset($sku_list[15])){
  187. $list['lowe'] = $sku_list[15]['id'];//曲 度
  188. }
  189. if($cate == 127)
  190. {
  191. if(isset($sku_list[27])){
  192. $list['type'] = $sku_list[27]['id']; //类 型
  193. }
  194. if(isset($sku_list[12])){
  195. $list['headroad'] = $sku_list[12]['id']; //头路设计
  196. }
  197. if(isset($sku_list[10])){
  198. $list['density'] = $sku_list[10]['id']; //密 度
  199. }
  200. if($list['type'] == 195 || $list['type'] == 197 || $list['type'] == 199)
  201. {
  202. //蕾丝尺寸
  203. if(isset($sku_list[25])){
  204. $list['lacesize'] = $sku_list[25]['id'];
  205. }
  206. if(isset($sku_list[26])){
  207. $list['lacesize'] = $sku_list[26]['id'];
  208. }
  209. }
  210. if(isset($sku_list[9])){
  211. $list['lacecolor'] = $sku_list[9]['id'];//蕾丝颜色
  212. }
  213. if(isset($sku_list[44])){
  214. $list['lacetypes'] = $sku_list[44]['id'];//蕾丝类型
  215. }
  216. }
  217. if($cate == 128)
  218. {
  219. if(isset($sku_list[18])){
  220. $list['lacetype'] = $sku_list[18]['id'];//头套种类
  221. }
  222. if(isset($sku_list[6])){
  223. $list['haircap'] = $sku_list[6]['id'];//发帽大小
  224. }
  225. if(isset($sku_list[10])){
  226. $list['density'] = $sku_list[10]['id'];//密 度
  227. }
  228. if(isset($sku_list[9])){
  229. $list['lacecolor'] = $sku_list[9]['id'];//蕾丝颜色
  230. }
  231. if(isset($sku_list[44])){
  232. $list['lacetypes'] = $sku_list[44]['id'];//蕾丝类型
  233. }
  234. if(isset($sku_list[39])){
  235. $list['wigother'] = $sku_list[39]['id'];//头套其它
  236. }
  237. if(isset($sku_list[50])){
  238. $list['wigother2'] = $sku_list[50]['id'];//头套其它2
  239. }
  240. }
  241. //现在没有129这个分类了
  242. // if($category == 129)
  243. // {
  244. // if(isset($sku_list[50])){
  245. // $list['wide'] = $sku_list[50]['id'];
  246. // }
  247. // }
  248. if($cate == 131)
  249. {
  250. if(isset($sku_list[34])){
  251. $list['gifttype'] = $sku_list[34]['id'];//Gift类型
  252. }
  253. if(isset($sku_list[49])){
  254. $list['giftother'] = $sku_list[49]['id'];//Gift其它
  255. }
  256. }
  257. //没有134这一项了
  258. // if($category == 134)
  259. // {
  260. // if(isset($sku_list[49])){
  261. // $list['giftother'] = $sku_list[49]['id'];
  262. // }
  263. // $list['pieceweight'] = $this->input->post('pieceweight',true);
  264. // }
  265. if($cate == 1297)
  266. {
  267. if(isset($sku_list[41])){
  268. $list['synthetictype'] = $sku_list[41]['id'];//头套类型
  269. }
  270. if(isset($sku_list[42])){
  271. $list['sywigother'] = $sku_list[42]['id'];//化纤头套其它
  272. }
  273. }
  274. if($cate == 130 || $cate == 133 || $cate == 1702)
  275. {
  276. if(isset($sku_list[38])){
  277. $list['items'] = $sku_list[38]['id'];//单包片数
  278. }
  279. if(isset($sku_list[7])){
  280. $list['weight'] = $sku_list[7]['id'];//重 量
  281. }
  282. }
  283. if($cate == 1702)
  284. {
  285. if(isset($sku_list[48])){
  286. $list['syhairther'] = $sku_list[48]['id'];//化纤发其它
  287. }
  288. }
  289. $pm = $classid;
  290. $jm = $classid;
  291. $sku = [];
  292. $title = '';$features = '';$cs = array();
  293. $bmpx = array(13=>'',16=>'',18=>'',25=>'',26=>'',41=>'');
  294. foreach($list as $k=>$v)
  295. {
  296. if(isset($typeclassid[$v]) && isset($bmpx[$typeclassid[$v]['classid']]))
  297. {
  298. if($typeclassid[$v]['bm'] != '')
  299. {
  300. $bmpx[$typeclassid[$v]['classid']] = $typeclassid[$v]['bm'];
  301. }
  302. }
  303. if($v != 0)
  304. {
  305. if($k != 'size')
  306. {
  307. $title .= $typeclassid[$v]['title']." ";
  308. }
  309. $features .=$v.'-';
  310. $sku[$typeclassid[$v]['classid']] = empty($typeclassid[$v]['bqsku'])?"":$typeclassid[$v]['bqsku'];
  311. if(isset($pm[$typeclassid[$v]['classid']]))
  312. {
  313. if($typeclassid[$v]['title'] == '9A')
  314. {
  315. $pm[$typeclassid[$v]['classid']] = '9A';
  316. }
  317. else if($typeclassid[$v]['title'] == '10A')
  318. {
  319. $pm[$typeclassid[$v]['classid']] = '10A';
  320. }
  321. else
  322. {
  323. $clzh = $typeclassid[$v]['zh'];
  324. if(stripos($typeclassid[$v]['zh'],'|') !== false)
  325. {
  326. $clzh = explode('|',rtrim($typeclassid[$v]['zh'],'|'));
  327. $clzh = $clzh[0];
  328. }
  329. $pm[$typeclassid[$v]['classid']] = $clzh;
  330. }
  331. }
  332. if(isset($jm[$typeclassid[$v]['classid']]))
  333. {
  334. if($typeclassid[$v]['jm'])
  335. {
  336. $jm[$typeclassid[$v]['classid']] = $typeclassid[$v]['jm'];
  337. }
  338. }
  339. }
  340. }
  341. $jm = array_filter($jm);//去除空值
  342. $jm = implode("-",$jm);
  343. $sku = array_filter($sku);//去除空值
  344. $sku = implode("-",$sku);
  345. $pm = array_filter($pm);//去除空值
  346. $pm = implode(" ",$pm);
  347. $pm = preg_replace("/\r\n|\r|\n/",'',trim($pm,' '));
  348. if($list['size'])
  349. {
  350. $typeclass = $this->typeclass->read($list['size']);
  351. $title .= $typeclass['title'];
  352. }
  353. $title = trim($title,' ');
  354. $post['num'] = $this->input->post('num',true);
  355. $ztime = $this->input->post('ztime',true);
  356. $post['ztime'] = strtotime($ztime);
  357. $post['bm'] = '03'.implode("",$bmpx);
  358. $post['jm'] = $jm;
  359. $post['sku'] = $sku;
  360. $post['pm'] = $pm;
  361. $post['title'] = $title;
  362. $post['features'] = '-'.$features;
  363. $post['number'] = date('YmdHis',time()).rand(100,999);
  364. if(!$post['num'])
  365. {
  366. $post['number'] = date("YmdHis").rand(100,999);
  367. }
  368. $time = time();
  369. $post['time'] = $time;//操作时间
  370. $post['printnum'] = $time;
  371. $post['type'] = 0;
  372. return $this->logic_tools->ret_arr(1,"ok",$post);
  373. }
  374. }