Files
OMS/app/ome/lib/finder/order/retrial.php
2025-12-28 23:13:25 +08:00

344 lines
13 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* Copyright © ShopeX http://www.shopex.cn. All rights reserved.
* See LICENSE file for license details.
*/
class ome_finder_order_retrial
{
/*------------------------------------------------------ */
//-- 操作
/*------------------------------------------------------ */
var $column_edit = '操作';
var $column_edit_order = '5';
var $column_edit_width = '70';
function column_edit($row)
{
$str = '<a href="index.php?app=ome&ctl=admin_order_retrial&act=normal&id='.$row['id'].'&p[0]='.$row['id'].'&finder_id='.$_GET['_finder']['finder_id'].'"
target="_blank">复审</a>';
if($row['status'] == '1' || $row['status'] == '2' || $row['status'] == '3')
{
$str = '已审核';
}
return $str;
}
/*------------------------------------------------------ */
//-- 订单详情
/*------------------------------------------------------ */
var $detail_basic = '订单详情';
function detail_basic($id)
{
$render = app::get('ome')->render();
$result = array();
//retrial
$oItem = app::get('ome')->model('order_retrial');
$result = $oItem->getList('*', array('id'=>$id), 0, 1);
$result = $result[0];
//type
$columns = $oItem->schema;
$retrial_type = $columns['columns']['retrial_type']['type'];
$status_arr = $columns['columns']['status']['type'];
$result['retrial_val'] = $retrial_type[$result['retrial_type']];
$result['status_val'] = $status_arr[$result['status']];
//orders
$oOrders = app::get('ome')->model('orders');
$order_detail = $oOrders->dump($result['order_id'], "*", array("order_items"=>array("*")));
$order_detail['mark_text'] = kernel::single('ome_func')->format_memo($order_detail['mark_text']);
$order_detail['custom_mark'] = kernel::single('ome_func')->format_memo($order_detail['custom_mark']);
$render->pagedata['result'] = $result;
$render->pagedata['order'] = $order_detail;
return $render->fetch('admin/order/retrial_detail.html');
}
/*------------------------------------------------------ */
//-- 订单明细
/*------------------------------------------------------ */
var $detail_goods = '订单明细';
function detail_goods($id)
{
$render = app::get('ome')->render();
//retrial
$oItem = app::get('ome')->model('order_retrial');
$row = $oItem->getList('order_id', array('id'=>$id), 0, 1);
$order_id = $row[0]['order_id'];
//goods_list
$oOrder = app::get('ome')->model('orders');
$item_list = $oOrder->getItemList($order_id, true);
$item_list = ome_order_func::add_getItemList_colum($item_list);
ome_order_func::order_sdf_extend($item_list);
$orders = $oOrder->getRow(array('order_id'=>$order_id),'shop_type,order_source');
$is_consign = false;
#淘宝代销订单增加代销价
if($orders['shop_type'] == 'taobao' && $orders['order_source'] == 'tbdx' )
{
kernel::single('ome_service_c2c_taobao_order')->order_sdf_extend($item_list);
$is_consign = true;
}
$configlist = array();
if ($servicelist = kernel::servicelist('ome.service.order.products'))
foreach ($servicelist as $object => $instance)
{
if (method_exists($instance, 'view_list')){
$list = $instance->view_list();
$configlist = array_merge($configlist, is_array($list) ? $list : array());
}
}
$render->pagedata['is_consign'] = ($is_consign > 0)?true:false;
$render->pagedata['configlist'] = $configlist;
$render->pagedata['item_list'] = $item_list;
$render->pagedata['object_alias'] = $oOrder->getOrderObjectAlias($order_id);
return $render->fetch('admin/order/detail_goods.html');
$render->pagedata['datalist'] = $goodslog;
return $render->fetch('admin/order/retrial_detail_log.html');
}
/*------------------------------------------------------ */
//-- 订单操作记录
/*------------------------------------------------------ */
var $detail_history = '订单操作记录';
function detail_history($id)
{
$render = app::get('ome')->render();
//retrial
$oItem = app::get('ome')->model('order_retrial');
$row = $oItem->getList('order_id', array('id'=>$id), 0, 1);
$order_id = $row[0]['order_id'];
#订单
$orderObj = app::get('ome')->model('orders');
$logObj = app::get('ome')->model('operation_log');
$deliveryObj = app::get('ome')->model('delivery');
$ooObj = app::get('ome')->model('operations_order');
/* 本订单日志 */
$history = $logObj->read_log(array('obj_id'=>$order_id,'obj_type'=>'orders@ome'),0,-1);
foreach($history as $k=>$v){
$data = $ooObj->getList('operation_id',array('log_id'=>$v['log_id']));
if(!empty($data)){
$history[$k]['flag'] ='true';
}else{
$history[$k]['flag'] ='false';
}
$history[$k]['operate_time'] = date('Y-m-d H:i:s',$v['operate_time']);
}
/* 发货单日志 */
$delivery_ids = $deliveryObj->getDeliverIdByOrderId($order_id);
$deliverylog = $logObj->read_log(array('obj_id'=>$delivery_ids,'obj_type'=>'delivery@ome'), 0, -1);
foreach($deliverylog as $k=>$v){
$deliverylog[$k]['operate_time'] = date('Y-m-d H:i:s',$v['operate_time']);
}
/* “失败”、“取消”、“打回”发货单日志 */
$history_ids = $deliveryObj->getHistoryIdByOrderId($order_id);
$deliveryHistorylog = array();
foreach($history_ids as $v){
$delivery = $deliveryObj->dump($v,'delivery_id,delivery_bn');
$deliveryHistorylog[$delivery['delivery_bn']] = $logObj->read_log(array('obj_id'=>$v,'obj_type'=>'delivery@ome'), 0, -1);
foreach($deliveryHistorylog[$delivery['delivery_bn']] as $k=>$v){
$deliveryHistorylog[$delivery['delivery_bn']][$k]['operate_time'] = date('Y-m-d H:i:s',$v['operate_time']);
}
}
/* 同批处理的订单日志 */
$order_ids = $deliveryObj->getOrderIdByDeliveryId($delivery_ids);
$orderLogs = array();
foreach($order_ids as $v){
if($v != $order_id){
$order = $orderObj->dump($v,'order_id,order_bn');
$orderLogs[$order['order_bn']] = $logObj->read_log(array('obj_id'=>$v,'obj_type'=>'orders@ome'), 0, -1);
foreach($orderLogs[$order['order_bn']] as $k=>$v){
if($v)
$orderLogs[$order['order_bn']][$k]['operate_time'] = date('Y-m-d H:i:s',$v['operate_time']);
}
}
}
$render->pagedata['history'] = $history;
$render->pagedata['deliverylog'] = $deliverylog;
$render->pagedata['deliveryHistorylog'] = $deliveryHistorylog;
$render->pagedata['orderLogs'] = $orderLogs;
$render->pagedata['order_id'] = $order_id;
return $render->fetch('admin/order/detail_history.html');
}
/*------------------------------------------------------ */
//-- 复审日志
/*------------------------------------------------------ */
var $detail_retrial_log = '复审日志';
function detail_retrial_log($id)
{
$render = app::get('ome')->render();
#retrial
$oItem = app::get('ome')->model('order_retrial');
$row = $oItem->getList('*', array('id'=>$id), 0, 1);
$row = $row[0];
#快照
$oSnapshot = app::get('ome')->model('order_retrial_snapshot');
$snapList = $oSnapshot->getList('tid, dateline', array('order_id'=>$row['order_id']), 0, -1);
$order_snap = array();
foreach ($snapList as $key=> $val)
{
$order_snap[$val['dateline']] = $val;
}
#log
$logObj = app::get('ome')->model('operation_log');
$goodslog = $logObj->read_log(array('obj_id'=>$row['order_id'], 'obj_type'=>'orders@ome', 'operation'=>'order_retrial@ome'), 0, -1);
foreach($goodslog as $k=>$v)
{
$operate_time = $v['operate_time'];
if(!empty($order_snap[$operate_time]))
{
$goodslog[$k]['snap'] = $order_snap[$operate_time]['tid'];
}
$goodslog[$k]['operate_time'] = date('Y-m-d H:i:s', $operate_time);
}
$render->pagedata['datalist'] = $goodslog;
return $render->fetch('admin/order/retrial_detail_log.html');
}
/*------------------------------------------------------ */
//-- 格式化字段
/*------------------------------------------------------ */
#订单总额
var $column_total_amount = '订单总额';
var $column_total_amount_width = '80';
var $column_total_amount_order = 50;
function column_total_amount($row)
{
return '<span style="font-weight:bold;color:#ff0000;">¥'.$row['total_amount'].'</span>';
}
#确认状态
var $column_process_status = "确认状态";
var $column_process_status_width = '80';
var $column_process_status_order = 80;
function column_process_status($row)
{
$order_Obj = app::get('ome')->model('orders');
$columns = $order_Obj->schema;
$process_status = $columns['columns']['process_status']['type'];
return ($row['process_status'] ? $process_status[$row['process_status']] : '');
}
#货到付款
var $column_is_cod = "货到付款";
var $column_is_cod_width = '80';
var $column_is_cod_order = 80;
function column_is_cod($row)
{
return ($row['is_cod'] == 'true' ? '<span style="font-weight:bold;color:green;">货到付款</span>' :
'<span style="font-weight:bold;color:#ff0000;">款到发货</span>');
}
#付款状态
var $column_pay_status = "付款状态";
var $column_pay_status_width = '80';
var $column_pay_status_order = 90;
function column_pay_status($row)
{
$order_Obj = app::get('ome')->model('orders');
$columns = $order_Obj->schema;
$pay_status = $columns['columns']['pay_status']['type'];
return ($row['pay_status'] != 1 ? '<span style="font-weight:bold;color:#ff0000;">'.$pay_status[$row['pay_status']].'</span>'
: '<span style="font-weight:bold;color:green;">'.$pay_status[$row['pay_status']].'</span>');
}
#发货状态
var $column_ship_status = "发货状态";
var $column_ship_status_width = '80';
var $column_ship_status_order = 100;
function column_ship_status($row)
{
$order_Obj = app::get('ome')->model('orders');
$columns = $order_Obj->schema;
$ship_status = $columns['columns']['ship_status']['type'];
return $ship_status[$row['ship_status']];
}
#下单时间
var $column_createtime = "下单时间";
var $column_createtime_width = '130';
var $column_createtime_order = 110;
function column_createtime($row)
{
return date('Y-m-d H:i:s', $row['createtime']);
}
/*------------------------------------------------------ */
//-- 显示行样式
/*------------------------------------------------------ */
function row_style($row)
{
$style = '';
if($row['status'] == '1')
{
$style .= ' list-even highlight-row ';
}
elseif($row['status'] == '2')
{
$style .= ' highlight-row ';
}
elseif($row['status'] == '3')
{
$style .= ' selected ';
}
return $style;
}
var $column_shop_name = "来源店铺";
var $column_shop_name_width = '130';
var $column_shop_name_order = 120;
function column_shop_name($row)
{
$shop = $this->_getShop($row['shop_id']);
return $shop['name'] ?: '';
}
/**
* 获取店铺信息
* @param $shop_id
* @param $list
* @return array|mixed
* @author db
* @date 2024-04-23 2:11 下午
*/
protected $__shopList = [];
private function _getShop($shop_id)
{
$data = $this->__shopList;
if (isset($data[$shop_id])) {
return $data[$shop_id] ?: [];
}
$rows = app::get('ome')->model('shop')->getList('shop_id,shop_bn,name,shop_type');
foreach ($rows as $row) {
$this->__shopList[$row['shop_id']] = $row;
}
return $this->__shopList[$shop_id] ?: [];
}
}