登录后,购买下载资源更方便!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
针对ecshop订单中的物品,需要支持拣货的状态,比如未拣货、拣货中、拣货完成,以及显示拣货人姓名。
. x! o k) q0 H4 r- _6 C
9 N* P7 K& ]: z5 e4 j5 _1.SQL操作:3 K7 R) G* H- v1 \! a# l9 Q/ I1 G
k& S( D2 U$ n' g% Y! y2.在文件languages\zh_cn\admin\order.php中增加:
* Q6 T$ C5 \# F: t0 q1 }1 o' R
% G8 j- g3 N2 c5 m9 j |2 ^/* 拣货 */
; P5 a" y) r. S$_LANG['order_picking_status'] = '拣货状态';( P0 \8 v9 K) i
$_LANG['order_picking_status_none'] = '未拣货';) Q! f1 v. [, v; l- C2 Q0 b6 C
$_LANG['order_picking_status_processing'] = '拣货中';
8 }2 \! j. f. O$ V$_LANG['order_picking_status_finish'] = '拣货完成';: i! Q# G8 G9 Q; t, n! R- Y
$_LANG['invalid_order_picking_status'] = '拣货状态无效。0:未拣货;1:拣货中;2:拣货完成';6 ]8 Z: J8 I1 k" f" d% H+ f. P+ |
) I T- p1 c2 R- z
8 R1 k8 {4 T2 `
3.文件admin\templates\order_list.htm中在一下两行之间:
% `2 D3 ~8 g0 _! I @& Y$ r 第一个地方
( W! [/ Y" _" F9 \+ b<th>{$lang.all_status}</th>5 @. \. R% t. ?& o/ y/ [* { c9 f
<th>{$lang.handler}</th>- \; s8 n9 X9 t" C( U
中间加上
# a& l9 Q3 S5 N# Y( i. @) v1 t1 t+ w4 n<th>{$lang.order_picking_status}</th>) I/ e8 W$ s5 ^: z9 R: ]7 u" |1 A
9 f0 v$ |" }7 I" }2 `/ l( E7 ^
第二个地方' Q. F' S. [; Q$ |: B. j+ s" x+ B
在<td align="center" valign="top" nowrap="nowrap">{$lang.os[$order.order_status]},{$lang.ps[$order.pay_status]},{$lang.ss[$order.shipping_status]}</td>9 e4 R: f4 K( ^( ~; H" o8 k
后面加上
; [9 Z$ F4 ]( C<td align="right" valign="top"nowrap="nowrap"><span>{$order.user_name}【{if $order.order_picking_status == 1}{$lang.order_picking_status_processing}{elseif $order.order_picking_status ==2} {$lang.order_picking_status_finish} {else}{$lang.order_picking_status_none}{/if}】</span></td>
3 n" o. q! H+ D! [0 } l4 s
& q6 E2 V$ M0 Y$ c/ s4 Y `+ U- M9 r3 j; R h
9 Q2 e7 f( s/ f5 h
4.admin\js\listtable.js中,listTable.edit的响应函数修改如下:- }8 j/ L* B$ k& @0 [
/ ]$ ^( N$ n% Y3 s% A' G) N
' r; I; x; U% c" y! B" v
/** * 创建一个可编辑区 */ listTable.edit = function(obj, act, id) { var tag =obj.firstChild.tagName; if (typeof(tag) !="undefined" && tag.toLowerCase() == "input") { return; } /* 保存原始的内容 */ var org = obj.innerHTML; var val = Browser.isIE ?obj.innerText : obj.textContent; /* 创建一个输入框 */ var txt =document.createElement("INPUT"); txt.value = (val == 'N/A') ?'' : val; txt.style.width =(obj.offsetWidth + 12) + "px" ; /* 隐藏对象中的内容,并将输入框加入到对象中 */ obj.innerHTML =""; obj.appendChild(txt); txt.focus(); txt.select(); /* 编辑区输入事件处理函数 */ txt.onkeypress = function(e) { var evt =Utils.fixEvent(e); var obj =Utils.srcElement(e); if (evt.keyCode == 13)//www.zuimoban.com { obj.blur(); return false; } if (evt.keyCode == 27) { obj.parentNode.innerHTML= org; } } /* 编辑区失去焦点的处理函数 */ txt.onblur = function(e) { if(Utils.trim(txt.value).length > 0) { res =Ajax.call(listTable.url, "act="+act+"&val=" +encodeURIComponent(Utils.trim(txt.value)) + "&id=" +id, null,"POST", "JSON", false); if (res.message) { alert(res.message); } if(res.id &&(res.act == 'goods_auto' || res.act == 'article_auto')) { document.getElementById('del'+res.id).innerHTML = "<ahref=\""+ thisfile +"?goods_id="+ res.id+"&act=del\" onclick=\"returnconfirm('"+deleteck+"');\">"+deleteid+"</a>"; } obj.innerHTML = (res.error== 0) ? res.content : org; } else { obj.innerHTML = org; } if (act =='edit_is_validated') { var content = obj.innerHTML.trim(); if (content == '1' || content.indexOf("yes") >= 0) { obj.innerHTML = '<imgsrc="images/yes.gif">'; } else { obj.innerHTML ='<img src="images/no.gif">'; } } else if (act =='edit_order_picking_status') { if (org == obj.innerHTML) { return true; } if (obj.innerHTML == '1') { obj.innerHTML ="【拣货中】"; } else if (obj.innerHTML == '2') { obj.innerHTML ="【拣货完成】"; } else { obj.innerHTML ="【未拣货】"; } } else { } } : g9 }1 Y, ]" w% t4 ]$ D
}
. ^6 m; X1 V" I( e8 Y7 x% \% w5.admin\order.php文件中增加下面的函数:0 Z' A2 y, i2 `$ ^
0 u' N- o8 `6 o- p
/*------------------------------------------------------ */# b8 Y* r9 V e
//-- 订单拣货状态查询3 `- e1 ^, P; @1 m" `# P
/*------------------------------------------------------ */: I. J, E# V9 t: q7 C) S4 \
+ V* l3 z% f3 ?4 f0 xif ($_REQUEST['act'] == 'edit_order_picking_status')" Y. @) q+ p5 [' I
{
8 P6 P/ t! n X2 l8 @ /* 检查权限 */ s9 m) v5 m6 B
check_authz_json('users_manage');9 M' r& {. K- b7 o# F5 p+ K" \2 A3 R
8 I# V9 F O& Y" U9 v" O {* S0 R' j $id =empty($_REQUEST['id']) ? 0 : intval($_REQUEST['id']);
2 X; f6 c' p8 A; m$ M. K $order_picking_status =empty($_REQUEST['val']) ? '' : json_str_iconv(trim($_REQUEST['val']));8 \( E% y% v5 c
% D6 ]; n" B8 p+ d, b3 K/ X, V
$sql = "DELETE fromorder_picking_status WHERE order_id = '". $id ."' LIMIT 1";
6 \- e- {9 p7 B f8 e, _( g $db->query($sql);# [1 Y0 g# O0 W& _1 U/ u2 E
0 h! v7 g8 }& a6 e3 D! Z+ D
$sql = "INSERT INTOorder_picking_status (order_id, user_name, order_picking_status) VALUES('". $id ."', '". $_SESSION['admin_name'] ."', '".$order_picking_status ."')";
9 c6 @8 P8 X, y" ] $db->query($sql);
# |+ F7 D5 ]8 X( l9 @
- A( B& ]+ q8 r if ($order_picking_status> 2 || $order_picking_status < 0)
, S" x, p. I7 B( v! I: d {4 t/ D' \& R# O5 n5 O- f
make_json_error($GLOBALS['_LANG']['invalid_order_picking_status']);" O$ r- Q$ I B" S: B x
}2 v# `3 k, y- ^
else+ G" y; ]1 G% F5 s% ^. x
{) h$ S% Z: n, U2 y' `% N- N
make_json_result($order_picking_status);: Z' o( P4 q% S" \/ O, A( l5 s
}
e/ P+ V( _0 H; _% G+ _% j w' T}4 v8 w! r6 E8 x$ T9 m
- D$ R1 s! b. K# b6、admin\order.php文件中增加下面的函数将以下代码
8 h$ Q Z: v( u /* 查询 */( a) n3 O( Y1 z* a
$sql = "SELECT o.*," .9 R% p4 a' F. g& @3 b: E. c
"o.pay_status, o.consignee, o.firstname, o.lastname, o.address, o.email, o.tel, o.extension_code, o.extension_id, " .! Z7 @& V; \1 H+ M
"(" . order_amount_field('o.') . ") AS total_fee, " .. ~! @, v: `! X% d
"IFNULL(u.user_name, '" .$GLOBALS['_LANG']['anonymous']. "') AS buyer ".
' |7 G' W% x$ d5 u " FROM " . $GLOBALS['ecs']->table('order_info') . " AS o " .
) N5 D. q( j: e; t3 Z( F+ f0 k0 M " LEFT JOIN " .$GLOBALS['ecs']->table('users'). " AS u ON u.user_id=o.user_id ". $where .
9 j" H/ m" a3 H: a/ m& B4 g( z " ORDER BY $filter[sort_by] $filter[sort_order] ".
2 N* L$ q2 l% @: u q: } " LIMIT " . ($filter['page'] - 1) * $filter['page_size'] . ",$filter[page_size]"; 5 U1 Z3 b& c/ D' m
修改为:
! C, R0 l9 Y" k6 K- \6 ?( u //* 查询 */
9 M+ Y( S% Y2 \3 O $sql = "SELECT o.*," .
! k- H. c! u7 j+ U "o.pay_status, o.consignee, o.firstname, o.lastname, o.address, o.email, o.tel, o.extension_code, o.extension_id, " .1 T8 M4 v% L: ]2 V
"(" . order_amount_field('o.') . ") AS total_fee, " .
- h& y' |5 B2 G! ^2 ` "IFNULL(u.user_name, '" .$GLOBALS['_LANG']['anonymous']. "') AS buyer , p.user_name, p.order_picking_status, r.order_reply_status ".
j2 V( J- `% ]! g4 b8 Q " FROM " . $GLOBALS['ecs']->table('order_info') . " AS o " .$ A: U& A& _8 Q5 f- H
" LEFT JOIN " .$GLOBALS['ecs']->table('users'). " AS u ON u.user_id=o.user_id ". ( ^ \' f1 m j8 s f/ g6 b0 y
" LEFT JOIN order_reply_status AS r ON r.order_id = o.order_id ". 3 n& G) F' j) G3 Q d) H( s
" LEFT JOIN order_picking_status AS p ON p.order_id = o.order_id ". $where .' J, X1 [# Z( `: o& Z/ |/ {
" ORDER BY $filter[sort_by] $filter[sort_order] ".
( v; d) X1 f6 x9 B' Q" O* u2 `( k " LIMIT " . ($filter['page'] - 1) * $filter['page_size'] . ",$filter[page_size]";% ^5 @2 R9 ?& ?" T( c- v/ s
4 V- U5 k% X5 Q0 ^3 B- w3 v' U1 U5 d7 Y3 Z: O. p( |$ W6 ?7 W
% l8 \' B4 i7 s+ O5 X
|