mirror of
https://gitee.com/ShopeX/OMS
synced 2026-04-13 01:05:42 +08:00
176 lines
8.8 KiB
PHP
176 lines
8.8 KiB
PHP
<?php
|
||
/**
|
||
* Copyright © ShopeX (http://www.shopex.cn). All rights reserved.
|
||
* See LICENSE file for license details.
|
||
*/
|
||
|
||
class sales_finder_aftersale{
|
||
|
||
public $return_type = array(
|
||
'return' => '退货',
|
||
'change' => '换货',
|
||
'refund' => '退款',
|
||
);
|
||
public $pay_type = array(
|
||
'online' => '在线支付',
|
||
'offline' => '线下支付',
|
||
'deposit' => '预存款支付',
|
||
);
|
||
|
||
function __construct($app){
|
||
$this->app = $app;
|
||
$this->render = app::get('sales')->render();
|
||
}
|
||
|
||
var $detail_basic = '基本信息';
|
||
function detail_basic($item_id){
|
||
$Oaftersale = $this->app->model('aftersale');
|
||
$Oaftersale_items = $this->app->model('aftersale_items');
|
||
$Oshop = app::get('ome')->model('shop');
|
||
$Omembers = app::get('ome')->model('members');
|
||
$Oorder = app::get('ome')->model('orders');
|
||
$Oreturn_products = app::get('ome')->model('return_product');
|
||
$Oreship = app::get('ome')->model('reship');
|
||
$Orefund_apply = app::get('ome')->model('refund_apply');
|
||
$Oaccount = app::get('pam')->model('account');
|
||
$Obranch = app::get('ome')->model('branch');
|
||
|
||
#售后单基本信息
|
||
$aftersales = $Oaftersale->getList('*',array('aftersale_id'=>$item_id),0,1);
|
||
#店铺信息
|
||
$shop = $Oshop->getList('name,shop_type',array('shop_id'=>$aftersales[0]['shop_id']),0,1);
|
||
// 判断是否加密
|
||
$aftersales[0]['is_encrypt'] = kernel::single('ome_security_router',$shop['shop_type'])->show_encrypt($aftersales, 'aftersale');
|
||
$aftersales[0]['shop_type'] = $shop['shop_type'];
|
||
|
||
$archive = $aftersales[0]['archive'];
|
||
if ($archive == '1') {
|
||
|
||
$archive_ordObj = kernel::single('archive_interface_orders');
|
||
$order =$archive_ordObj->getOrders($aftersales[0]['order_id'],'order_bn,order_id');
|
||
$order[0] = $order;
|
||
|
||
}else{
|
||
#订单信息
|
||
$order = $Oorder->getList('order_bn,order_id',array('order_id'=>$aftersales[0]['order_id']),0,1);
|
||
}
|
||
#售后申请信息
|
||
$return_products = $Oreturn_products->getList('return_bn',array('return_id'=>$aftersales[0]['return_id']),0,1);
|
||
#退换货信息
|
||
$reship = $Oreship->getList('reship_bn',array('reship_id'=>$aftersales[0]['reship_id']),0,1);
|
||
#退款申请信息
|
||
$refund_apply = $Orefund_apply->getList('refund_apply_bn',array('apply_id'=>$aftersales[0]['return_apply_id']),0,1);
|
||
#操作员信息
|
||
$account = $Oaccount->getList('login_name,account_id');
|
||
#会员信息
|
||
$member = $Omembers->getList('uname',array('member_id'=>$aftersales[0]['member_id']),0,1);
|
||
|
||
foreach ($account as $v) {
|
||
$accounts[$v['account_id']] = $v['login_name'];
|
||
}
|
||
|
||
$aftersales[0]['shop_id'] = $shop[0]['name'];
|
||
$aftersales[0]['order_id'] = $order[0]['order_bn'];
|
||
$aftersales[0]['return_id'] = $return_products[0]['return_bn'];
|
||
$aftersales[0]['reship_id'] = $reship[0]['reship_bn'];
|
||
$aftersales[0]['return_apply_id'] = $refund_apply[0]['refund_apply_bn'];
|
||
$aftersales[0]['member_id'] = $member[0]['uname'];
|
||
$aftersales[0]['return_type'] = $this->return_type[$aftersales[0]['return_type']];
|
||
|
||
$aftersales[0]['check_op_id'] = $accounts[$aftersales[0]['check_op_id']];
|
||
$aftersales[0]['op_id'] = $accounts[$aftersales[0]['op_id']];
|
||
$aftersales[0]['refund_op_id'] = $accounts[$aftersales[0]['refund_op_id']];
|
||
|
||
|
||
if($aftersales[0]['return_type'] == '退款'){
|
||
$payment_cfgObj = app::get('ome')->model('payment_cfg');
|
||
$aftersale_items = $Oaftersale_items->getList('*',array('aftersale_id'=>$item_id));
|
||
$payment_cfg = $payment_cfgObj->dump(array('id'=>$aftersale_items[0]['payment']), 'custom_name');
|
||
$aftersale_items[0]['payment'] = $payment_cfg['custom_name'];
|
||
$aftersales = array_merge($aftersales[0],$aftersale_items[0]);
|
||
$aftersales['pay_type'] = $this->pay_type[$aftersales['pay_type']];
|
||
|
||
$aftersale_items = $Oaftersale_items->getList('*',array('aftersale_id'=>$item_id));
|
||
$Oorder_items = app::get('ome')->model('order_items');
|
||
foreach ($aftersale_items as $key => $value) {
|
||
$aftersale_items[$key]['branch_id'] = $Obranch->Get_name($aftersale_items[$key]['branch_id']);
|
||
if(empty($value['saleprice']) || bccomp($value['saleprice'],'0.000',3) == 0){
|
||
$orderitems = $Oorder_items->getList('sale_price',array('order_id'=>$order[0]['order_id'],'bn'=>$value['bn']),0,1);
|
||
$aftersale_items[$key]['saleprice'] = $orderitems[0]['sale_price'];
|
||
}
|
||
|
||
//平台商品信息
|
||
$addon = $value['addon'] ? json_decode($value['addon'], true) : [];
|
||
$aftersale_items[$key]['shop_goods_id'] = isset($addon['shop_goods_id']) ? $addon['shop_goods_id'] : '';
|
||
$aftersale_items[$key]['shop_product_id'] = isset($addon['shop_product_id']) ? $addon['shop_product_id'] : '';
|
||
$recover['refuse'][] = $aftersale_items[$key];
|
||
}
|
||
$this->render->pagedata['items'] = $recover;
|
||
$this->render->pagedata['aftersales'] = $aftersales;
|
||
|
||
return $this->render->fetch('aftersale/detail_refunded.html');
|
||
}else{
|
||
$aftersale_items = $Oaftersale_items->getList('*',array('aftersale_id'=>$item_id));
|
||
$Oorder_items = app::get('ome')->model('order_items');
|
||
|
||
foreach ($aftersale_items as $key => $value) {
|
||
|
||
$aftersale_items[$key]['branch_id'] = $Obranch->Get_name($aftersale_items[$key]['branch_id']);
|
||
|
||
if(empty($value['saleprice']) || bccomp($value['saleprice'],'0.000',3) == 0){
|
||
$orderitems = $Oorder_items->getList('sale_price',array('order_id'=>$order[0]['order_id'],'bn'=>$value['bn']),0,1);
|
||
$aftersale_items[$key]['saleprice'] = $orderitems[0]['sale_price'];
|
||
}
|
||
|
||
//平台商品信息
|
||
$addon = $value['addon'] ? json_decode($value['addon'], true) : [];
|
||
$aftersale_items[$key]['shop_goods_id'] = isset($addon['shop_goods_id']) ? $addon['shop_goods_id'] : '';
|
||
$aftersale_items[$key]['shop_product_id'] = isset($addon['shop_product_id']) ? $addon['shop_product_id'] : '';
|
||
|
||
if($value['return_type'] == 'return'){
|
||
$props = app::get('sales')->model('aftersale_items_props')->getList('props_col,props_value', ['item_detail_id'=>$value['item_id']]);
|
||
$aftersale_items[$key]['props'] = array_column($props, 'props_value', 'props_col');
|
||
$recover['return'][] = $aftersale_items[$key];
|
||
}elseif($value['return_type'] == 'change'){
|
||
$recover['change'][] = $aftersale_items[$key];
|
||
}else{
|
||
$recover['refuse'][] = $aftersale_items[$key];
|
||
}
|
||
}
|
||
$propsTitle = app::get('desktop')->model('customcols')->getList('*', ['tbl_name'=>'sdb_sales_aftersale_items']);
|
||
$this->render->pagedata['propsTitle'] = $propsTitle;
|
||
$this->render->pagedata['aftersales'] = $aftersales[0];
|
||
$this->render->pagedata['items'] = $recover;
|
||
return $this->render->fetch('aftersale/detail_basic.html');
|
||
}
|
||
}
|
||
|
||
public $addon_cols = "reship_id";
|
||
public $column_reship_type = "售后退货分类";
|
||
public $column_reship_type_width = 120;
|
||
public $column_reship_type_order = 1;
|
||
protected $reship_type = [];
|
||
/**
|
||
* column_reship_type
|
||
* @param mixed $row row
|
||
* @param mixed $list list
|
||
* @return mixed 返回值
|
||
*/
|
||
public function column_reship_type($row, $list){
|
||
$reship_id = $row[$this->col_prefix.'reship_id'];
|
||
if($this->reship_type){
|
||
return $this->reship_type[$reship_id] ? : '-';
|
||
}
|
||
$reshipIds = array_column($list, $this->col_prefix.'reship_id');
|
||
$reship_arr = app::get('ome')->model('reship')->getList('reship_id,reship_bn,return_logi_no,flag_type',array('reship_id'=>$reshipIds),0,-1);
|
||
foreach ($reship_arr as $k => $reship){
|
||
$return_category = '客退';
|
||
if ($reship['flag_type'] & ome_reship_const::__LANJIE_RUKU) {
|
||
$return_category = '原单退';//拦截退
|
||
}
|
||
$this->reship_type[$reship['reship_id']] = $return_category;
|
||
}
|
||
return $this->reship_type[$reship_id] ? : '-';
|
||
}
|
||
|
||
} |