这两天写的是买家的退款流程,
其中分为待发货退款和已发货退款,
分别要考虑到买家向卖家,买家向管理员,卖家向买家同意、不同意退款,管理员向买家同意、不同意退款。
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');
}