登录后,购买下载资源更方便!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
针对ecshop订单中的物品,需要支持拣货的状态,比如未拣货、拣货中、拣货完成,以及显示拣货人姓名。
; F. E$ @/ T$ C) s! R
$ ^5 t5 T0 {' H5 m9 M% E0 v3 y1.SQL操作:
/ ~# f0 ^( d7 u+ X( [" L; y' n" `0 Z+ r: a4 |" f5 u; E6 V
2.在文件languages\zh_cn\admin\order.php中增加:
: E7 {7 l t3 ^) u* A G# [# A( l% q+ U/ Y5 }9 A, X: W3 a
/* 拣货 */7 t& N. v+ U) p1 }
$_LANG['order_picking_status'] = '拣货状态';, A* f B5 K; v- L
$_LANG['order_picking_status_none'] = '未拣货'; C% Y* L: w8 i5 J$ o& q' |7 S$ P+ I
$_LANG['order_picking_status_processing'] = '拣货中';
6 U7 W: s6 T8 f# G6 W* G$_LANG['order_picking_status_finish'] = '拣货完成';$ [5 v7 M* @6 @, `* ]6 K
$_LANG['invalid_order_picking_status'] = '拣货状态无效。0:未拣货;1:拣货中;2:拣货完成';
; g6 o1 d% V6 m! ~5 X* w7 A- z/ ~/ D) Z( O1 x+ {9 ~
! w3 g# e# R: u" E- t% f+ I/ t- ?3.文件admin\templates\order_list.htm中在一下两行之间:, [- v9 g4 `2 k/ D! b4 ?$ o% T+ Q
第一个地方; G7 Z, \8 t8 l( I' u! m; P. c
<th>{$lang.all_status}</th>8 y" d) D7 \1 ]& ^; p5 ?
<th>{$lang.handler}</th>% Q) G; e$ ~# e, f4 Y0 C6 P
中间加上
; j5 b1 P+ D% t' P- s$ F2 Q<th>{$lang.order_picking_status}</th>
( p" n/ n* k& b! W% F$ r4 I, k& i: b: H
第二个地方
/ u. J' c3 ^4 r/ w9 ]在<td align="center" valign="top" nowrap="nowrap">{$lang.os[$order.order_status]},{$lang.ps[$order.pay_status]},{$lang.ss[$order.shipping_status]}</td>
2 v5 n& v7 s- K ?$ {后面加上% l1 X3 C( w3 L0 J0 W3 Z+ m
<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>
% c& c" N$ \5 h7 H
# m. Y/ r& W0 [; ^
6 g+ }* j1 z) B: a* n4 Z
: d, ]' U; U1 |4.admin\js\listtable.js中,listTable.edit的响应函数修改如下:
8 r) z6 g/ E" u9 g5 V1 f. z3 J0 v7 R ~* Q4 |; K9 {- }3 _
7 j1 s+ S3 ^: e4 p, A8 C( ~" L/** * 创建一个可编辑区 */ 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 { } } - C" D2 [! A' y8 [
} / \9 o# S! |7 ^- X; x
5.admin\order.php文件中增加下面的函数:
7 J* [- g* L8 t6 m/ ^* b$ L" _5 \1 k" b7 p- ^) d. Q3 P& A
/*------------------------------------------------------ */
* \6 ]' b- q; t$ l1 I( {//-- 订单拣货状态查询
# P- Z0 I+ S L4 n& Y2 ^& T W/*------------------------------------------------------ */! B& e! n) M9 n) ?
) a. k" Q; l/ C% J0 c& ~; B$ Q
if ($_REQUEST['act'] == 'edit_order_picking_status')
& F" k* K% A: V{
9 G6 K# F5 j7 ` /* 检查权限 */9 K. S* r' h% C
check_authz_json('users_manage');
) }+ @( i# W6 B& J+ R. E ' z# t) O$ g$ y* z3 o
$id =empty($_REQUEST['id']) ? 0 : intval($_REQUEST['id']);
& ~" x3 z1 P# P5 m $order_picking_status =empty($_REQUEST['val']) ? '' : json_str_iconv(trim($_REQUEST['val']));
: ~ ~5 X% v2 A- C
! Y, X* p" {1 u0 M+ i( w& x# E $sql = "DELETE fromorder_picking_status WHERE order_id = '". $id ."' LIMIT 1";
; _$ M8 r' P6 y: F, L& ~ $db->query($sql);2 X6 ], r) ^! Y2 N
! I" c' y# f& N& Q3 H
$sql = "INSERT INTOorder_picking_status (order_id, user_name, order_picking_status) VALUES('". $id ."', '". $_SESSION['admin_name'] ."', '".$order_picking_status ."')";
; p* z- e' X/ ~" |% j. r. U $db->query($sql);* Z4 B; _) j3 o7 M$ i
, h# t. e5 W# j3 k3 ? if ($order_picking_status> 2 || $order_picking_status < 0)+ Y- r, P4 c# r9 A3 j3 J
{+ I0 n+ w; a8 ]7 K7 P
make_json_error($GLOBALS['_LANG']['invalid_order_picking_status']);2 W9 I+ p2 z( L7 N* d
}
: g9 E8 t& @ I6 y: |6 t else% m( B9 T. `& c& @
{2 i& T* n3 G- [: F* M& j' U2 w1 W- s
make_json_result($order_picking_status);
: G3 T6 f# U5 t) p( a& w }# d& g4 }, H/ j0 X0 G& |8 P
}
: s% @+ `2 |) l" ] `0 N' f; C$ o% W' m7 ~8 f+ k7 P* D
6、admin\order.php文件中增加下面的函数将以下代码
/ I/ g" [1 r0 W& K/ X /* 查询 */
6 w( B' H4 q" Y* b# v$sql = "SELECT o.*," .1 d9 E4 f* f3 }0 C0 ?! E
"o.pay_status, o.consignee, o.firstname, o.lastname, o.address, o.email, o.tel, o.extension_code, o.extension_id, " . C( ^) x2 x/ k5 }
"(" . order_amount_field('o.') . ") AS total_fee, " .5 _% ?! l. E$ a5 P- V2 C. ~
"IFNULL(u.user_name, '" .$GLOBALS['_LANG']['anonymous']. "') AS buyer ".9 D" ~' v4 g9 W$ k* h' T
" FROM " . $GLOBALS['ecs']->table('order_info') . " AS o " .
/ V% V) A; C$ h$ h2 s: W' C " LEFT JOIN " .$GLOBALS['ecs']->table('users'). " AS u ON u.user_id=o.user_id ". $where .
& Y0 r1 U9 E# g' |+ s4 Z, Q* a " ORDER BY $filter[sort_by] $filter[sort_order] ".
4 S" z- v; F+ W( r& v " LIMIT " . ($filter['page'] - 1) * $filter['page_size'] . ",$filter[page_size]";
& y8 ~" A0 R2 K9 [' P, a& C$ O修改为:
! @/ F1 ~. X4 e7 h //* 查询 */
) `0 h3 p* }; A3 d $sql = "SELECT o.*," .
& z3 J5 z1 N( i- W0 e' w "o.pay_status, o.consignee, o.firstname, o.lastname, o.address, o.email, o.tel, o.extension_code, o.extension_id, " .
+ g$ Q- y) ]/ _! a "(" . order_amount_field('o.') . ") AS total_fee, " .
: V4 o) X3 t4 ^5 @) D "IFNULL(u.user_name, '" .$GLOBALS['_LANG']['anonymous']. "') AS buyer , p.user_name, p.order_picking_status, r.order_reply_status ".
& c, Y2 _- }% Y3 W1 ?7 c " FROM " . $GLOBALS['ecs']->table('order_info') . " AS o " .
# i6 C4 s$ G3 u: R/ E " LEFT JOIN " .$GLOBALS['ecs']->table('users'). " AS u ON u.user_id=o.user_id ". $ Z7 P2 y& {5 [+ c3 H- ]: D9 h
" LEFT JOIN order_reply_status AS r ON r.order_id = o.order_id ".
% C8 m" X+ H3 m! ~8 s% p- B) e" LEFT JOIN order_picking_status AS p ON p.order_id = o.order_id ". $where .
' E9 w& g4 m+ s) ` " ORDER BY $filter[sort_by] $filter[sort_order] ". # _: \; c( @6 W3 n7 _6 _( `+ l8 n
" LIMIT " . ($filter['page'] - 1) * $filter['page_size'] . ",$filter[page_size]";
% q3 A- V8 }6 U1 U/ R( R. G4 C* G5 I* L( O+ r4 D& d
4 c; Q" n. {, D+ q" A" I0 `% C
) G$ @6 E$ d _5 N Q- M |