登录后,购买下载资源更方便!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
针对ecshop订单中的物品,需要支持拣货的状态,比如未拣货、拣货中、拣货完成,以及显示拣货人姓名。7 l. P' ?2 j( y1 N
- N2 F0 x0 S3 a& j1 |1 I
1.SQL操作:9 W) e$ B" J# z7 E1 e7 k5 s7 U
+ z/ \" B: Q* k) i0 j* E2 H" z
2.在文件languages\zh_cn\admin\order.php中增加:8 \" k$ H$ V5 {1 X0 }
- a! t9 s) C; |4 |
/* 拣货 */8 K" U/ k0 q' r/ l2 u
$_LANG['order_picking_status'] = '拣货状态';
! Y I8 R( W; c3 L9 [4 {6 |1 }4 L$_LANG['order_picking_status_none'] = '未拣货';" _/ X* c# Y: z) J+ r& Y3 p3 B
$_LANG['order_picking_status_processing'] = '拣货中';; i! u# M$ }6 t1 \( j3 Z
$_LANG['order_picking_status_finish'] = '拣货完成';. s0 Q K0 j: m, [( o% p$ v
$_LANG['invalid_order_picking_status'] = '拣货状态无效。0:未拣货;1:拣货中;2:拣货完成';1 C# ^7 F2 E& G, l7 U
+ j0 b1 i) a5 n; H* Q }* R6 {9 f
}. R* a9 Q7 q/ p; z w% t- F) b4 u3.文件admin\templates\order_list.htm中在一下两行之间:
9 M6 |" u! p# }* f 第一个地方
% j9 a ~% p* }) o, ~; W) ^<th>{$lang.all_status}</th>3 E# L7 J+ q5 B
<th>{$lang.handler}</th>; D6 R+ J$ p; {$ K! Z
中间加上
' ]8 N8 R0 L9 z+ }. J5 i<th>{$lang.order_picking_status}</th>, |7 h1 ?2 u8 P/ q1 W
, }( h. P: |) H" x第二个地方
7 ]8 V, a. |& p在<td align="center" valign="top" nowrap="nowrap">{$lang.os[$order.order_status]},{$lang.ps[$order.pay_status]},{$lang.ss[$order.shipping_status]}</td>
3 ?! H+ t2 [. h8 z后面加上
8 _/ h2 F0 ~ V$ 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>
* G1 Z3 h% b* D# v+ E" Q! o, O" R* P$ e% ~
% n* |+ r) m1 _- _8 S$ }/ i' y/ U* j; }7 w* n) n
4.admin\js\listtable.js中,listTable.edit的响应函数修改如下:" K- B) ?; v2 M U1 S- B$ L5 L5 `
: |+ |+ R* r G8 L5 |6 L
$ C. |% E7 @5 X# u" W/** * 创建一个可编辑区 */ 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 { } }
) W* E6 J _; {6 Y& @ ?5 n}
$ E1 A: D/ H# E7 k5.admin\order.php文件中增加下面的函数:
! ~" ]2 B! l9 S( Z( { l4 p
% j8 i/ u f/ W) B' q8 V9 `/*------------------------------------------------------ */
: n0 M$ N) U: v/ |* t5 \//-- 订单拣货状态查询
5 J6 s! `+ Z4 U4 {/ l2 e/*------------------------------------------------------ */1 C. ?0 q* K0 m+ k
8 ? b8 L+ x' e% _+ R, mif ($_REQUEST['act'] == 'edit_order_picking_status')
, P4 i+ ?1 i: B( s7 E{# {" S8 @" ^) @& B5 R
/* 检查权限 */
& j9 V' m- u: {0 _ check_authz_json('users_manage');( ?3 b" e; C6 Y9 O! a$ d
4 B; [1 R# k& n d
$id =empty($_REQUEST['id']) ? 0 : intval($_REQUEST['id']);, i* H) Y" w& ?' b4 [2 h9 s
$order_picking_status =empty($_REQUEST['val']) ? '' : json_str_iconv(trim($_REQUEST['val']));( p' p8 N2 n6 V7 G8 l
+ |, u1 f$ Z4 D7 k- u v8 w
$sql = "DELETE fromorder_picking_status WHERE order_id = '". $id ."' LIMIT 1";
. U" J! ?# e# R7 P5 w1 C: N $db->query($sql);
; h: Z2 {; L3 b4 q! w
, T- a2 b0 x9 K7 z7 R $sql = "INSERT INTOorder_picking_status (order_id, user_name, order_picking_status) VALUES('". $id ."', '". $_SESSION['admin_name'] ."', '".$order_picking_status ."')";
& i9 Q& ?0 o! [1 P- j $db->query($sql);( m$ @" f. B& q; I& R8 x( W
8 R4 s k4 o# ^ if ($order_picking_status> 2 || $order_picking_status < 0)
- L# O' J8 [& B) ~" N {
" w. t' h# g( @0 V0 M( H/ h make_json_error($GLOBALS['_LANG']['invalid_order_picking_status']);$ r1 m" K) _2 a( a u" R4 C
}
+ L( Z9 w0 a* h h$ y8 i& J* ? else
2 S- N/ m/ G4 T s {! E) w5 X: M+ S# L9 p" f
make_json_result($order_picking_status);
# f O0 Z- R5 Q3 \" m }; U" g* m6 W& G& m' T9 \
}
" h2 T( h; D9 W' h8 ~- U' L O1 \2 r0 Y j
6、admin\order.php文件中增加下面的函数将以下代码% [4 K8 y7 N; Z/ F! m O' {$ r
/* 查询 */! a$ p8 Q2 o' G- J8 N
$sql = "SELECT o.*," .6 |, _5 O; i+ D& O4 w; {
"o.pay_status, o.consignee, o.firstname, o.lastname, o.address, o.email, o.tel, o.extension_code, o.extension_id, " .
2 J/ t" W3 d0 T "(" . order_amount_field('o.') . ") AS total_fee, " .
/ s% j# K9 C6 u, }9 ]( u3 b "IFNULL(u.user_name, '" .$GLOBALS['_LANG']['anonymous']. "') AS buyer ".: D* w: s) M, w; N: j5 s& m
" FROM " . $GLOBALS['ecs']->table('order_info') . " AS o " .) B5 K7 B/ T, E2 t# ~! T9 D9 Z
" LEFT JOIN " .$GLOBALS['ecs']->table('users'). " AS u ON u.user_id=o.user_id ". $where . 3 c4 p; O8 o) ?; {6 S: |% U* N& M$ F
" ORDER BY $filter[sort_by] $filter[sort_order] ".& e$ n$ d" f8 S: a( k1 W
" LIMIT " . ($filter['page'] - 1) * $filter['page_size'] . ",$filter[page_size]"; 1 A& t; H8 v( M- g, H e
修改为:: T1 a0 d6 d! q0 }3 X1 s; X
//* 查询 */
" x9 n& T7 c7 z9 q+ b) I* a% l $sql = "SELECT o.*," .
7 Y4 q2 V/ D2 y- {$ F "o.pay_status, o.consignee, o.firstname, o.lastname, o.address, o.email, o.tel, o.extension_code, o.extension_id, " .& C* k4 |9 A2 U* U& I/ [, m; z2 O4 _
"(" . order_amount_field('o.') . ") AS total_fee, " .
7 K- F3 ?4 W+ }+ r$ w0 x+ ~4 a "IFNULL(u.user_name, '" .$GLOBALS['_LANG']['anonymous']. "') AS buyer , p.user_name, p.order_picking_status, r.order_reply_status ".
6 S2 F4 j$ Z. h; c/ ]: H " FROM " . $GLOBALS['ecs']->table('order_info') . " AS o " .( s! C' ]; S& x2 S
" LEFT JOIN " .$GLOBALS['ecs']->table('users'). " AS u ON u.user_id=o.user_id ". 3 Q- m% [9 \6 n" Y4 |) [. O4 e
" LEFT JOIN order_reply_status AS r ON r.order_id = o.order_id ". 0 F/ W8 h, a' V
" LEFT JOIN order_picking_status AS p ON p.order_id = o.order_id ". $where .- l4 B' M2 Y4 |; N
" ORDER BY $filter[sort_by] $filter[sort_order] ". 1 }% Y9 B+ H9 c+ {
" LIMIT " . ($filter['page'] - 1) * $filter['page_size'] . ",$filter[page_size]";! `* f1 v7 |9 z$ t2 e$ O3 R: a
( w" _3 e( S5 d9 J0 N6 ~
! r( ?8 _1 F* o! Z
/ e. W+ L4 `: e) q; b |