ECMall 退款流程2

来源:互联网 发布:js 解码ccitt.t6 编辑:程序博客网 时间:2024/04/29 01:12

这两天写的是买家的退款流程,

其中分为待发货退款和已发货退款,

分别要考虑到买家向卖家,买家向管理员,卖家向买家同意、不同意退款,管理员向买家同意、不同意退款。

function dispose_text($array) //正则取出退款信息的数据方法

/*
     * 
     *退款处理方法
     */
    function tkcl()
    {
        $model_tkinfo =& m('tkinfo');
        $order_id = isset($_GET['order_id']) ? intval($_GET['order_id']) : 0;
        $model_order =& m('order');
        //$order_info  = $model_order->get("order_id={$order_id} AND buyer_id=" . $this->visitor->get('user_id'));
        $order_info = $model_order->get(array(
            'fields'        => "*, order.add_time as order_add_time",
            'conditions'    => "order_id={$order_id} AND buyer_id=" . $this->visitor->get('user_id'),
            'join'          => 'belongs_to_store',
            ));
        if (!$order_info)
        {
            $this->show_warning('no_such_order');
            return;
        }
        
        //待发货/已发货 状态处理:   
        if (IS_POST)
        {
$tkinfo = $model_tkinfo->get("order_id ={$order_id}"); 
            $str = 'money_'.$_POST['money'].'_sfth_'.$_POST['istuihuo'].'_sfdh_'.$_POST['isdaohuo'].'_addtime_'. time() .'_text_'.$_POST['text']; 
            //待发、已发退款,向卖家都修改textbtos;向管理员都修改textbtoa;
            if($order_info['status'] == ORDER_TKDFTOS || $order_info['status'] ==ORDER_TKYFTOS){
                $model_tkinfo->edit($tkinfo['tk_id'] , array('textbtos' => $str));
            }else if ($order_info['status'] ==ORDER_TKDFTOA || $order_info['status'] == ORDER_TKYFTOA || $order_info['status'] ==ORDER_TKDFSN || $order_info['status'] == ORDER_TKYFSN){
                //卖家不同意时可以提交向管理员申请,向管理员申请也可以修改申请理由
                $model_tkinfo->edit($tkinfo['tk_id'] , array('textbtoa' => $str));
                if($order_info['status'] ==ORDER_TKDFSN){
                    $model_order->edit($order_id, array('status' => ORDER_TKDFTOA));
                }else if($order_info['status'] == ORDER_TKYFSN){
                    $model_order->edit($order_id, array('status' => ORDER_TKYFTOA));
                }
            } 
            // 添加退款信息:修改订单状态,待发/已发 
            if($order_info['status'] == ORDER_ACCEPTED){
                $model_order->edit($order_id, array('status' => ORDER_TKDFTOS));
                $model_tkinfo->add(array(
                'order_id'  => $order_id,
                'tk_status'=> ORDER_TKDFTOS,
                'textbtos' => $str
                )); 
            }else if ($order_info['status'] == ORDER_SHIPPED){
                $model_order->edit($order_id, array('status' => ORDER_TKYFTOS));
                $model_tkinfo->add(array(
                'order_id'  => $order_id,
                'tk_status'=> ORDER_TKYFTOS,
                'textbtos' => $str,
                ));
            } 
            
        } 
        //初始化上传组件
        if($order_info['status'] == ORDER_TKDFTOS || $order_info['status'] ==ORDER_TKYFTOS || $order_info['status'] == ORDER_ACCEPTED || $order_info['status'] ==ORDER_SHIPPED){
            $belong = BELONG_TKIMGBTOS;
        }  else {
            $belong = BELONG_TKIMGBTOA;
        }
        $this->import_resource(array('script' => 'jquery.plugins/jquery.validate.js,change_upload.js'));
        $this->assign('build_upload', $this->_build_upload(array('upload_url'=> "index.php?app=swfuploadtk",'belong' => $belong, 'item_id' => $order_id))); // 构建swfupload上传组件
        
        $order_info  = $model_order->get("order_id={$order_id} AND buyer_id=" . $this->visitor->get('user_id'));
        $tkinfo = $model_tkinfo->get("order_id ={$order_id}"); 
        //如果存在退款信息 
        if ($tkinfo)
        {       
            //刷新退款信息,并输出退款信息 AND tk_status=".ORDER_TKDFTOS 
            $this->assign('tkinfo', $this->dispose_text($tkinfo));
            //输出附件信息
            $this->_uploadedfile_mod = & m('uploadedfile');
            $tkimg = $this->_uploadedfile_mod->find("item_id={$order_id} AND belong=".BELONG_TKIMGBTOS); 
            $this->assign('files_belong_btos', $tkimg);
            $tkimg = $this->_uploadedfile_mod->find("item_id={$order_id} AND belong=".BELONG_TKIMGSTOB); 
            $this->assign('files_belong_stob', $tkimg);
            $tkimg = $this->_uploadedfile_mod->find("item_id={$order_id} AND belong=".BELONG_TKIMGBTOA); 
            $this->assign('files_belong_btoa', $tkimg);
            $tkimg = $this->_uploadedfile_mod->find("item_id={$order_id} AND belong=".BELONG_TKIMGATOB); 
            $this->assign('files_belong_atob', $tkimg);
        }
         
        /* 当前位置 */
        $this->_curlocal(LANG::get('member_center'), 'index.php?app=member',
                         LANG::get('my_order'), 'index.php?app=buyer_order',
                         LANG::get('view_order'));


        /* 当前用户中心菜单 */
        $this->_curitem('my_order');


        $this->_config_seo('title', Lang::get('member_center') . ' - ' . Lang::get('order_detail'));


        /* 调用相应的订单类型,获取整个订单详情数据 */
        $order_type =& ot($order_info['extension']);
        $order_detail = $order_type->get_order_detail($order_id, $order_info);
        foreach ($order_detail['data']['goods_list'] as $key => $goods)
        {
            empty($goods['goods_image']) && $order_detail['data']['goods_list'][$key]['goods_image'] = Conf::get('default_goods_image');
        } 
        $this->assign('order', $order_info);
        $this->assign($order_detail['data']);
        $this->display('buyer_order.tkcl.html');
    }