登录后,购买下载资源更方便!
您需要 登录 才可以下载或查看,没有账号?立即注册
x
针对ecshop订单中的物品,需要支持拣货的状态,比如未拣货、拣货中、拣货完成,以及显示拣货人姓名。- s* j; B( ^% I& K7 _
6 D) }. `$ V7 T1 `1.SQL操作:
' b" j: ]( n' Q$ h6 E3 \* C" O- m; t1 B1 G; r
2.在文件languages\zh_cn\admin\order.php中增加:
: x4 }: X& v2 F& S# D9 O: k1 f* x3 t
/* 拣货 */
8 B; r# v* I! ]4 o) q a6 c \$_LANG['order_picking_status'] = '拣货状态';5 U+ E2 p2 S {9 V+ F' W) w
$_LANG['order_picking_status_none'] = '未拣货';
+ w! G2 |5 a+ X9 s c3 Y$_LANG['order_picking_status_processing'] = '拣货中';
2 {3 @+ [- H2 R3 a# {& Q# a! w$_LANG['order_picking_status_finish'] = '拣货完成';
/ N. T0 _: B$ N6 v: L$_LANG['invalid_order_picking_status'] = '拣货状态无效。0:未拣货;1:拣货中;2:拣货完成';/ Q" i, j# X; Q; E2 S, g
. n3 m3 u0 o7 F2 l9 C: T5 x1 T0 [$ t4 y% d4 I, o
3.文件admin\templates\order_list.htm中在一下两行之间:5 r9 B# i( A0 x2 Y
第一个地方
, d4 W Y6 e# v) K$ j<th>{$lang.all_status}</th>
6 b6 u% Z9 V& \; p" G" i<th>{$lang.handler}</th>
8 X7 P& D7 y. P! r( D中间加上
# N" T; D9 g4 y$ }3 X<th>{$lang.order_picking_status}</th>
% l1 W* Z1 D; F. M1 h; K9 i/ c$ K, I- D
第二个地方
1 O( l6 R) W$ j6 z+ J, I- L在<td align="center" valign="top" nowrap="nowrap">{$lang.os[$order.order_status]},{$lang.ps[$order.pay_status]},{$lang.ss[$order.shipping_status]}</td>
2 A( h ~1 k# @9 O- @后面加上
- Y/ l9 b" ]5 S, ~" C6 H) L<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>1 Q/ R U& c6 q* c# z
. t' _ y& k! o7 |+ _8 W9 w
# c) L. g7 z2 g. I8 f6 U$ o1 v. {: V$ X+ S
4.admin\js\listtable.js中,listTable.edit的响应函数修改如下:
& A9 G0 p3 G# Y/ j/ U7 w( L# K8 j8 P
9 e# C$ _& q5 m/** * 创建一个可编辑区 */ 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 { } }
* ~6 w- l+ L) _0 C5 B% K Q}
3 @7 D5 o$ W8 d l5 _5.admin\order.php文件中增加下面的函数:
" k! m0 \2 q2 [( w0 l' D2 G: F# |) j; z6 N) ?
/*------------------------------------------------------ */
! K4 j+ x" g/ s' u0 p' e//-- 订单拣货状态查询
+ o. _2 P: w' I0 ~: B2 t: _" M* b/*------------------------------------------------------ */
; [1 Z$ F- o9 |- E& X# Q
/ L4 B; {* O7 p8 V: sif ($_REQUEST['act'] == 'edit_order_picking_status')
1 l2 Q& k$ d4 {7 U{
2 ~4 h7 h- m+ x /* 检查权限 */+ Q. Q6 @' v0 q4 n
check_authz_json('users_manage');
* a0 V+ r) }$ }2 r' g: _ * ]% O' B5 l/ l. L; c2 C
$id =empty($_REQUEST['id']) ? 0 : intval($_REQUEST['id']);3 f) a$ l& V6 t# B9 c' `" }
$order_picking_status =empty($_REQUEST['val']) ? '' : json_str_iconv(trim($_REQUEST['val']));
, G5 u% q' v9 e f' J
! ^; [3 n, k ^ p9 ?' Q $sql = "DELETE fromorder_picking_status WHERE order_id = '". $id ."' LIMIT 1";3 R4 w% {" T4 s$ C' M
$db->query($sql);/ {2 h' x" h) m' \3 w3 u
. c$ k: C* V- I/ n: g $sql = "INSERT INTOorder_picking_status (order_id, user_name, order_picking_status) VALUES('". $id ."', '". $_SESSION['admin_name'] ."', '".$order_picking_status ."')";
y. J. Y8 A. I. B* g9 C $db->query($sql);
4 }9 G4 f4 G0 R# X8 j( n; j% i 9 l9 S [, B) P+ W) K+ D' E8 l
if ($order_picking_status> 2 || $order_picking_status < 0)
! I, E; e( X* J/ \- `( d/ U {
+ E- d5 A* L" d9 P7 | make_json_error($GLOBALS['_LANG']['invalid_order_picking_status']);. }/ q5 K4 g0 E1 b2 D
}
& c" Y% G; V2 O5 K4 \1 M; r else% I: r- \( z( @: N* w
{
) Q" P) @* C7 Z3 J* B# \& x make_json_result($order_picking_status);
, [3 Y1 q. O" w7 k/ W }
! _- p7 ~* _9 Y}
9 T/ V, x& [0 j% y" K' K% C" d9 e& c8 v2 j& Y0 m
6、admin\order.php文件中增加下面的函数将以下代码
k9 \+ C! l6 d( I: [% v /* 查询 */
: }4 Z Y% y0 Z; c4 K! d" w3 z$sql = "SELECT o.*," .
7 J7 J* x h' C- x5 w6 e' I' k R# _ "o.pay_status, o.consignee, o.firstname, o.lastname, o.address, o.email, o.tel, o.extension_code, o.extension_id, " .
6 u) |' O1 B! _# X8 { "(" . order_amount_field('o.') . ") AS total_fee, " .6 @- Z5 D0 K" Y! i# o* T+ C
"IFNULL(u.user_name, '" .$GLOBALS['_LANG']['anonymous']. "') AS buyer ".
( |8 n/ j+ e1 U3 H9 c0 [, r7 k " FROM " . $GLOBALS['ecs']->table('order_info') . " AS o " .
+ E8 O( J# k" m& B6 { " LEFT JOIN " .$GLOBALS['ecs']->table('users'). " AS u ON u.user_id=o.user_id ". $where . 3 Z' Q, ~1 j! B" |1 M9 n4 u
" ORDER BY $filter[sort_by] $filter[sort_order] ".
0 {7 K; n0 K0 A% p- r! J( y J+ [4 L " LIMIT " . ($filter['page'] - 1) * $filter['page_size'] . ",$filter[page_size]"; " W, Y: |( A& k# w
修改为:9 q( ?& J# u4 E: \ V5 e
//* 查询 */
- _" ^! w/ g6 y9 k& l% f $sql = "SELECT o.*," .( y* `2 Z1 J* A' D. E
"o.pay_status, o.consignee, o.firstname, o.lastname, o.address, o.email, o.tel, o.extension_code, o.extension_id, " .3 [) K: A* G, ?5 F5 O! `. c
"(" . order_amount_field('o.') . ") AS total_fee, " .9 |) s! {" w1 N: _7 n+ Y
"IFNULL(u.user_name, '" .$GLOBALS['_LANG']['anonymous']. "') AS buyer , p.user_name, p.order_picking_status, r.order_reply_status ".
' G# i+ x; x1 |, a " FROM " . $GLOBALS['ecs']->table('order_info') . " AS o " .
; P% T" W1 \1 L2 I* b$ u2 H " LEFT JOIN " .$GLOBALS['ecs']->table('users'). " AS u ON u.user_id=o.user_id ". ! S: K" z$ J1 n' V
" LEFT JOIN order_reply_status AS r ON r.order_id = o.order_id ". 9 e/ y' ^* a7 T+ x0 b, N
" LEFT JOIN order_picking_status AS p ON p.order_id = o.order_id ". $where .
2 I5 x. I* S# d6 {2 `' X% k " ORDER BY $filter[sort_by] $filter[sort_order] ". - D( t! a4 @/ y5 X7 s0 w
" LIMIT " . ($filter['page'] - 1) * $filter['page_size'] . ",$filter[page_size]";0 \; \( y) i# P
* W/ G+ |9 A$ V, a, F. t$ d- W1 l$ O6 q3 T% R# ~5 o2 z
$ n& e% g5 H: ^( O) L7 P5 L, @; @, m |