科恒数字网-持续研发、集成、交付、运营方案资源库

标题: 给ecshop订单流程增加拣货状态,最新版本,支持ECSHOP3.6系统 [打印本页]

作者: admin    时间: 2020-6-12 09:15
标题: 给ecshop订单流程增加拣货状态,最新版本,支持ECSHOP3.6系统
针对ecshop订单中的物品,需要支持拣货的状态,比如未拣货、拣货中、拣货完成,以及显示拣货人姓名。- z' F# c" X, v) w/ l, c7 F
+ F# Z1 Y% j: J7 Y! H
1.SQL操作:4 h. D! j. C# G- Y8 N4 y5 ]2 P% o7 d

- q! [: X4 D, H8 \9 I! _2.在文件languages\zh_cn\admin\order.php中增加:
7 t% |8 t% ~) O+ ^; ?' i! j: n' P
% B3 e: G( Q& P  t/* 拣货 */  n( P: }5 M% F) H9 |7 S( o' K
$_LANG['order_picking_status'] = '拣货状态';
  L5 z' \$ d& J! W3 p+ n$_LANG['order_picking_status_none'] = '未拣货';
5 Q9 ^; ~5 `8 v/ x/ W$_LANG['order_picking_status_processing'] = '拣货中';! N8 T: R* E) x5 j1 n9 Y1 N
$_LANG['order_picking_status_finish'] = '拣货完成';: r. U+ o1 l2 }
$_LANG['invalid_order_picking_status'] = '拣货状态无效。0:未拣货;1:拣货中;2:拣货完成';
' J4 s- q  P3 p; @! \5 K; W) K
' P0 |* X  O1 ?7 S+ r0 w1 ^* M& i8 R  D' m' l2 T- M4 h7 q( P' t8 w
3.文件admin\templates\order_list.htm中在一下两行之间:1 ^; v; N& n, a! O
    第一个地方
- o$ a4 n# w7 |8 P- R<th>{$lang.all_status}</th>0 l3 z. Z! W) D& k/ ^% b; q4 ~
<th>{$lang.handler}</th>8 G& @0 M) \  m6 o
中间加上
& P) i5 F. o  C& L/ x; E; L, y% E8 m<th>{$lang.order_picking_status}</th>3 c: F4 O0 @; h8 d* _3 F* V
: \4 X' X) L! m* W" U$ A3 \* Y# e
第二个地方( |4 {) o. w4 ?  f. |4 {
在<td align="center" valign="top" nowrap="nowrap">{$lang.os[$order.order_status]},{$lang.ps[$order.pay_status]},{$lang.ss[$order.shipping_status]}</td>
, n$ D. o6 P; z  N后面加上
# R& [4 e/ \# F9 L1 E( N<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>$ N$ u8 ^0 g& F+ M4 z

; O8 ]+ {# I+ O
1 M+ T; J* g2 g, J, [
  e: |; w2 I# k9 [2 U! p0 ~  ^4.admin\js\listtable.js中,listTable.edit的响应函数修改如下:& z- b: o" r, O5 ~0 e

! D1 k  q& o& n! @6 x. N# s0 C# u$ d9 j9 Y/ u: B, 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

    {

        

    }

  }


) F0 h1 Z/ s2 i% L2 q

}

3 U4 G. ?3 ^  S
5.admin\order.php文件中增加下面的函数:
0 K7 A) t6 _& s* S, a
* A9 c% v, ?) p' I
/*------------------------------------------------------ */3 q3 S, x/ K7 v$ j/ Y! l. r
//-- 订单拣货状态查询% Q' J, f. D% |& @
/*------------------------------------------------------ */
4 f; O+ O& m+ _+ F1 c( e/ p, S
6 ]& W8 M7 v( [0 Qif ($_REQUEST['act'] == 'edit_order_picking_status'); E/ `6 s- i) F. Z' U2 {$ O
{" F! Q0 N3 L: W$ L5 q) q4 c$ l+ B
    /* 检查权限 */: W1 Q' n( N, b+ [+ U
   check_authz_json('users_manage');4 U& S6 ]3 ?% {  u4 k+ q' h5 O
* i+ z+ }( \. V/ ~% G/ ^. _5 G
    $id =empty($_REQUEST['id']) ? 0 : intval($_REQUEST['id']);
; n2 B% L* u- ^    $order_picking_status =empty($_REQUEST['val']) ? '' : json_str_iconv(trim($_REQUEST['val']));
; z+ q) T% `* W) p! p; @) w% [ . {$ r& K0 {/ L* U4 m3 @
    $sql = "DELETE fromorder_picking_status WHERE order_id = '". $id ."' LIMIT 1";: B( k; Y+ D7 L( F
    $db->query($sql);1 L8 L( A9 v; w* T
   " m3 e) j8 p8 U( C/ n5 \% W+ {
    $sql = "INSERT INTOorder_picking_status (order_id, user_name, order_picking_status) VALUES('". $id ."', '". $_SESSION['admin_name'] ."', '".$order_picking_status ."')";
% K5 B# l4 C4 _  b7 O; R    $db->query($sql);
+ Z/ ^4 k  z$ h+ F3 C   
2 H2 Y5 ^1 t- r$ J$ H0 d( P0 }    if ($order_picking_status> 2 || $order_picking_status < 0)
4 h" z6 c' o3 ]5 u2 Y( E4 P    {# S- f7 R0 X& A2 J
         make_json_error($GLOBALS['_LANG']['invalid_order_picking_status']);
- w" N, i& ~% n- I- [    }
/ p4 V- Y, V- I& t8 ?3 ~7 R/ ]$ X' Q    else
& G. ~- Z9 K6 y    {2 s- y/ L2 g( q0 D8 L& y5 G3 C- G% a
         make_json_result($order_picking_status);, A1 z* L1 _6 L$ u
    }
5 Z+ o* k: [) ]0 f+ ]}  m- V& U  v% o: Z

5 ]; t; [0 E. k# d7 [6、admin\order.php文件中增加下面的函数将以下代码
5 ?8 [4 A& v. J! y9 _. P8 ? /* 查询 */
) s2 B# X8 e9 J2 K* K0 b& t$sql = "SELECT o.*," .
. {# h; G, |' y6 i                    "o.pay_status, o.consignee, o.firstname, o.lastname, o.address, o.email, o.tel, o.extension_code, o.extension_id, " .
$ E" S% L$ R9 E6 E$ T                    "(" . order_amount_field('o.') . ") AS total_fee, " .  z( p8 j; k! h1 S8 o
                    "IFNULL(u.user_name, '" .$GLOBALS['_LANG']['anonymous']. "') AS buyer ".' |8 B5 @2 n8 T2 M
                " FROM " . $GLOBALS['ecs']->table('order_info') . " AS o " .
: |5 _6 Y6 K; n- w# r                " LEFT JOIN " .$GLOBALS['ecs']->table('users'). " AS u ON u.user_id=o.user_id ". $where .                        
7 p1 X% {0 [* h& z* \                " ORDER BY $filter[sort_by] $filter[sort_order] ".
5 I' T3 K4 z% n$ I                " LIMIT " . ($filter['page'] - 1) * $filter['page_size'] . ",$filter[page_size]";  
7 J) T/ a% v  Z/ u修改为:6 }# ?0 H2 t+ a! i+ v3 I6 R
//* 查询 */
; T/ g2 U8 h) H+ [& W0 V      $sql = "SELECT o.*," .
# g8 l. z) x  c0 C5 b                    "o.pay_status, o.consignee, o.firstname, o.lastname, o.address, o.email, o.tel, o.extension_code, o.extension_id, " .- v5 o- S$ F  N; A( l
                    "(" . order_amount_field('o.') . ") AS total_fee, " .
, K2 Y" ?  L' m* ~7 X0 ^, n2 s                    "IFNULL(u.user_name, '" .$GLOBALS['_LANG']['anonymous']. "') AS buyer , p.user_name, p.order_picking_status, r.order_reply_status ".% a6 a# j8 p; O* i' Y+ S7 @9 G
                " FROM " . $GLOBALS['ecs']->table('order_info') . " AS o " .
" H8 B6 ~1 `( S. t: C$ j  \                " LEFT JOIN " .$GLOBALS['ecs']->table('users'). " AS u ON u.user_id=o.user_id ".        
2 I" e1 X1 J+ k1 _: U        " LEFT JOIN order_reply_status AS r ON r.order_id = o.order_id ". + {* B( r9 ~+ o# w; `: m* r2 a8 l8 b
" LEFT JOIN order_picking_status AS p ON p.order_id = o.order_id ". $where .
+ x8 H! X, u+ Z- F                " ORDER BY $filter[sort_by] $filter[sort_order] ".              
* n0 T* a4 {) b! l& y3 `                " LIMIT " . ($filter['page'] - 1) * $filter['page_size'] . ",$filter[page_size]";
; i/ N7 x3 g* f$ g
; |; C- v, Z& `; x
$ N% [3 C" q- Q2 W. F8 Z8 _
: h* @$ u- |2 Z; U5 u





欢迎光临 科恒数字网-持续研发、集成、交付、运营方案资源库 (https://www.khcic.com/) Powered by Discuz! X3.5