登录后,购买下载资源更方便!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
针对ecshop订单中的物品,需要支持拣货的状态,比如未拣货、拣货中、拣货完成,以及显示拣货人姓名。- D: ]5 Z3 [) _) A/ E! a$ h
$ H e! k3 ^- Y2 S4 Q) @( V* k: |1.SQL操作:/ i! K _% @" ^- B& W% K
2 e8 P2 F1 j! y
2.在文件languages\zh_cn\admin\order.php中增加:
! k( K% d$ y. M5 _* \, S3 p3 n. i1 h" o
/* 拣货 */
* g9 w- x) m! [$_LANG['order_picking_status'] = '拣货状态';
: L Q7 n+ |/ a9 c+ F$_LANG['order_picking_status_none'] = '未拣货';3 J9 a" R) u& E: W$ [( b+ [! H
$_LANG['order_picking_status_processing'] = '拣货中';
6 E7 L4 Z1 @7 t/ H- o$_LANG['order_picking_status_finish'] = '拣货完成';
: L% d$ E+ t. B2 @2 j1 q, U$_LANG['invalid_order_picking_status'] = '拣货状态无效。0:未拣货;1:拣货中;2:拣货完成';
5 n7 f! V- I- Z* ]+ X% ` w4 B9 o; L g
+ q7 `; R- b) j$ `# F: O2 L$ W
3.文件admin\templates\order_list.htm中在一下两行之间:4 @. S3 d Z h$ {9 a* i
第一个地方
9 z s' v' l; S0 f+ D/ i& N<th>{$lang.all_status}</th>
4 b1 n9 y" r6 U/ l: S. J9 w<th>{$lang.handler}</th>
) y# Q$ ^( n+ [4 U; g* Y中间加上5 ?1 ^' K% L, F4 @5 l
<th>{$lang.order_picking_status}</th>$ z" F7 ~& P) d, o( \
" ?; X* X5 l$ V# C2 O& ~& w4 n* [2 M第二个地方" h( T! ]1 @) n, g
在<td align="center" valign="top" nowrap="nowrap">{$lang.os[$order.order_status]},{$lang.ps[$order.pay_status]},{$lang.ss[$order.shipping_status]}</td>
: v: |# _! Y* q* E* t1 i后面加上
3 J! ~# u8 D* v. v( Y<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; P9 p& Q( x
" V/ q$ w( R9 Q7 P7 I a1 N2 i5 S9 P. L
' }2 T& O, j( p" Q
# ?9 f7 }2 N+ T8 M/ V0 U4.admin\js\listtable.js中,listTable.edit的响应函数修改如下:
8 _9 k9 p% X& v
- _7 G; }$ Z. ]1 u& X9 T% `7 F X
# S: H0 R5 H. T, G& }/** * 创建一个可编辑区 */ 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( c- \$ p* I/ N' g# P% @} / q2 V2 z0 Q- X2 H9 }
5.admin\order.php文件中增加下面的函数:4 r: x, W8 H7 m6 v; p: [% K
' |& `$ b+ A+ q3 a+ C, b
/*------------------------------------------------------ */
! Z/ b7 O" N1 [' \//-- 订单拣货状态查询, i9 t0 y% K4 }) g4 D
/*------------------------------------------------------ */
1 Y/ A2 @- Q3 ^: C8 K $ u- {- h* R, t, |- K: o7 K: h
if ($_REQUEST['act'] == 'edit_order_picking_status')0 B& f8 T% |' }9 Q h3 u
{4 t- B: [6 \. d" V$ A
/* 检查权限 */
. W. u$ W5 O q& v) C4 i check_authz_json('users_manage');" E O( _ E4 E) M0 m7 r
]6 z; B2 v+ `8 g $id =empty($_REQUEST['id']) ? 0 : intval($_REQUEST['id']);
8 x6 S5 W. I' c1 H $order_picking_status =empty($_REQUEST['val']) ? '' : json_str_iconv(trim($_REQUEST['val']));0 ^5 w8 t! ?) C9 U) L. ]1 y
1 n+ D) c/ ~- i' i# F6 W $sql = "DELETE fromorder_picking_status WHERE order_id = '". $id ."' LIMIT 1";
1 {- f) b& u5 h2 E; j- z2 \$ e $db->query($sql);
; I4 N! W8 z7 o0 G9 u* _) l $ l9 F2 U% t5 U* n e
$sql = "INSERT INTOorder_picking_status (order_id, user_name, order_picking_status) VALUES('". $id ."', '". $_SESSION['admin_name'] ."', '".$order_picking_status ."')";
& I6 d p! E) ?. T( ? $db->query($sql);; V; y+ {& C! X6 e) N1 @, Y
8 F4 Z9 k4 @* q0 w: ?9 T. E
if ($order_picking_status> 2 || $order_picking_status < 0)( D- I4 o0 W5 h' V& V- t5 G& k
{
) ]4 h% I6 D$ E+ X7 @5 _5 i* D make_json_error($GLOBALS['_LANG']['invalid_order_picking_status']);9 F! X. U9 E: }: h# h
}+ p, n+ ?3 z& g7 l% m- @
else' N- l! s2 W- M$ P) f
{( G* w& T$ M* w
make_json_result($order_picking_status);
: x1 E5 u1 V3 X1 E+ K" C, J } `0 M+ H# J( t2 ^" `1 m4 Y
}& x# x, a5 s1 G1 d! ^# c1 f m
$ z. v, K) X* c. a% _6、admin\order.php文件中增加下面的函数将以下代码
/ S. e7 b' T5 Z6 D& f' _; { /* 查询 */* R! y. X- P1 l. G
$sql = "SELECT o.*," .
* c" ~" b2 w( S9 Y. A1 e "o.pay_status, o.consignee, o.firstname, o.lastname, o.address, o.email, o.tel, o.extension_code, o.extension_id, " .1 V) }5 W/ a% v0 Q8 H- s
"(" . order_amount_field('o.') . ") AS total_fee, " .
) h& z" p( y' d "IFNULL(u.user_name, '" .$GLOBALS['_LANG']['anonymous']. "') AS buyer ".
7 [3 E* s6 p+ z/ g; T " FROM " . $GLOBALS['ecs']->table('order_info') . " AS o " . i7 t4 A, Z4 h A
" LEFT JOIN " .$GLOBALS['ecs']->table('users'). " AS u ON u.user_id=o.user_id ". $where .
' r9 `4 } F% b e/ t5 ]3 X " ORDER BY $filter[sort_by] $filter[sort_order] ".
3 w5 F5 @* b( `8 G% d- `& S " LIMIT " . ($filter['page'] - 1) * $filter['page_size'] . ",$filter[page_size]";
- c3 x% x% `7 A; |' H- H修改为:
6 \8 | Q0 h u! q5 ]8 Q //* 查询 */
- n! w( e) x. a3 D" q $sql = "SELECT o.*," .
0 T: Q, [6 R2 g6 \# y+ G "o.pay_status, o.consignee, o.firstname, o.lastname, o.address, o.email, o.tel, o.extension_code, o.extension_id, " .
. d0 \ X) x. u: Z "(" . order_amount_field('o.') . ") AS total_fee, " .* q* e' n8 q; { j" y
"IFNULL(u.user_name, '" .$GLOBALS['_LANG']['anonymous']. "') AS buyer , p.user_name, p.order_picking_status, r.order_reply_status ".0 T& X5 A. v6 `$ o
" FROM " . $GLOBALS['ecs']->table('order_info') . " AS o " .
, V) H! l5 a/ T7 u: q; e " LEFT JOIN " .$GLOBALS['ecs']->table('users'). " AS u ON u.user_id=o.user_id ". % `! U" i8 a5 {) b; E6 h9 D- Q
" LEFT JOIN order_reply_status AS r ON r.order_id = o.order_id ".
5 h) S3 e1 F; E1 M# w% \2 U: G" LEFT JOIN order_picking_status AS p ON p.order_id = o.order_id ". $where .
% |$ p, f U: w* k' v " ORDER BY $filter[sort_by] $filter[sort_order] ". 1 j8 \& T% c( v9 k* E* B. A
" LIMIT " . ($filter['page'] - 1) * $filter['page_size'] . ",$filter[page_size]";
X8 s3 W3 r6 K$ ~; h5 d2 G7 i) M
: V- W! C2 E: \% B1 M
/ b5 _6 N: ^+ H% A, P' P g# z: b o) T
|