Files
OMS/app/console/controller/admin/delivery/logistics.php
2025-12-28 23:13:25 +08:00

239 lines
8.3 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.
*/
/**
* 在途监控
*
* @author chenping@shopex.cn
* @time Sun Jun 30 11:11:53 2019
*/
class console_ctl_admin_delivery_logistics extends desktop_controller
{
public $name = "发货中心";
public $workground = "delivery_center";
/**
* _views
* @return mixed 返回值
*/
public function _views()
{
if (method_exists($this, sprintf('_%s_views', $_GET['act']))) {
return $this->{'_'.$_GET['act'].'_views'}();
}
return array ();
}
/**
* _lanshou_views
* @return mixed 返回值
*/
public function _lanshou_views()
{
$sub_menu = array (
array ('label' => '未揽收', 'addon' => 'showtab', 'optional' => false, 'filter' => array ('status' => 'succ', 'logi_status' => '0','parent_id'=>'0')),
array ('label' => '已揽收', 'addon' => 'showtab', 'optional' => false, 'filter' => array ('status' => 'succ', 'logi_status' => '1','parent_id'=>'0')),
);
return $sub_menu;
}
/**
* _qianshou_views
* @return mixed 返回值
*/
public function _qianshou_views()
{
$sub_menu = array (
array ('label' => '五天未签收', 'addon' => 'showtab', 'optional' => false, 'filter' => array ('delivery_time|lthan'=>strtotime('-5 days'), 'status' => 'succ', 'logi_status|noequal' => '3','parent_id'=>'0')),
array ('label' => '三天未签收', 'addon' => 'showtab', 'optional' => false, 'filter' => array ('delivery_time|between'=>array (strtotime('-5 days'),strtotime('-3 days')), 'status' => 'succ', 'logi_status|noequal' => '3','parent_id'=>'0')),
array ('label' => '已签收', 'addon' => 'showtab', 'optional' => false, 'filter' => array ('status' => 'succ', 'logi_status' => '3','parent_id'=>'0')),
);
return $sub_menu;
}
/**
* 揽收列表
*
* @return void
* @author
* */
public function lanshou()
{
$params = array(
'title' => '揽件列表',
'actions' => array (
array (
'label' => '同步物流状态',
'submit' => $this->url.'&act=batchLogiSync',
'target' => 'dialog::{width:600,height:290,title:\'同步物流状态\'}',
),
),
'base_filter' => array (),
'use_buildin_new_dialog' => false,
'use_buildin_set_tag' => false,
'use_buildin_recycle' => false,
'use_buildin_export' => false,
'use_buildin_import' => false,
'use_buildin_filter' => true,
'use_view_tab' => true,
'filter_inheader' => true,
// 'object_method' => array('count' => 'logisticsCount', 'getlist' => 'logisticsList'),
);
// 如果发货时间没传默认2个月
if (!$_POST['delivery_time']) {
$_POST['delivery_time'] = '1';
$_POST['_delivery_time_search'] = 'between';
$_POST['_DTIME_']['H']['delivery_time_from'] = '00';
$_POST['_DTIME_']['H']['delivery_time_to'] = '00';
$_POST['_DTIME_']['M']['delivery_time_from'] = '00';
$_POST['_DTIME_']['M']['delivery_time_to'] = '00';
$_POST['delivery_time_from'] = date('Y-m-d',strtotime('-2 month'));
$_POST['delivery_time_to'] = date('Y-m-d',strtotime('+1 day'));
}
require_once APP_DIR.'/base/datatypes.php';
$params['base_filter']['status'] = 'succ';
$params['base_filter']['parent_id'] = '0';
$is_super = kernel::single('desktop_user')->is_super();
if (!$is_super) {
$branch_ids = app::get('ome')->model('branch')->getBranchByUser(true);
if ($branch_ids) {
$params['base_filter']['ext_branch_id'] = $_POST['branch_id'] ? array_intersect(array($_POST['branch_id']), $branch_ids) : $branch_ids;
} else {
$params['base_filter']['ext_branch_id'] = 'false';
}
}
$params['title'] .= ',查询范围:发货时间'.$datatypes['time']['searchparams'][$_POST['_delivery_time_search']];
if ($_POST['delivery_time'] == '1') {
$params['title'] .= $_POST['delivery_time_from'].'~'.$_POST['delivery_time_to'];
} else {
$params['title'] .= $_POST['delivery_time'];
}
$this->finder('console_mdl_delivery', $params);
}
/**
* 签收列表
*
* @return void
* @author
* */
public function qianshou()
{
$params = array(
'title' => '签收列表',
'actions' => array (
array (
'label' => '同步物流状态',
'submit' => $this->url.'&act=batchLogiSync',
'target' => 'dialog::{width:600,height:290,title:\'同步物流状态\'}',
),
),
'base_filter' => array (),
'use_buildin_new_dialog' => false,
'use_buildin_set_tag' => false,
'use_buildin_recycle' => false,
'use_buildin_export' => false,
'use_buildin_import' => false,
'use_buildin_filter' => true,
'use_view_tab' => true,
'filter_inheader' => true,
// 'object_method' => array('count' => 'logisticsCount', 'getlist' => 'logisticsList'),
);
// 如果发货时间没传默认2个月
if (!$_POST['delivery_time']) {
$_POST['delivery_time'] = '1';
$_POST['_delivery_time_search'] = 'between';
$_POST['_DTIME_']['H']['delivery_time_from'] = '00';
$_POST['_DTIME_']['H']['delivery_time_to'] = '00';
$_POST['_DTIME_']['M']['delivery_time_from'] = '00';
$_POST['_DTIME_']['M']['delivery_time_to'] = '00';
$_POST['delivery_time_from'] = date('Y-m-d',strtotime('-2 month'));
$_POST['delivery_time_to'] = date('Y-m-d',strtotime('+1 day'));
}
require_once APP_DIR.'/base/datatypes.php';
$params['base_filter']['status'] = 'succ';
$params['base_filter']['parent_id'] = '0';
$is_super = kernel::single('desktop_user')->is_super();
if (!$is_super) {
$branch_ids = app::get('ome')->model('branch')->getBranchByUser(true);
if ($branch_ids) {
$params['base_filter']['ext_branch_id'] = $_POST['branch_id'] ? array_intersect(array($_POST['branch_id']), $branch_ids) : $branch_ids;
} else {
$params['base_filter']['ext_branch_id'] = 'false';
}
}
$params['title'] .= ',查询范围:发货时间'.$datatypes['time']['searchparams'][$_POST['_delivery_time_search']];
if ($_POST['delivery_time'] == '1') {
$params['title'] .= $_POST['delivery_time_from'].'~'.$_POST['delivery_time_to'];
} else {
$params['title'] .= $_POST['delivery_time'];
}
$this->finder('console_mdl_delivery', $params);
}
/**
* batchLogiSync
* @return mixed 返回值
*/
public function batchLogiSync()
{
$this->pagedata['request_url'] = $this->url.'&act=ajaxBatchLogiSync';
// $this->pagedata['autotime'] = '500';
parent::dialog_batch('ome_mdl_delivery',true,20,'incr');
}
/**
* ajaxBatchLogiSync
* @return mixed 返回值
*/
public function ajaxBatchLogiSync()
{
parse_str($_POST['primary_id'], $postdata);
if (!$postdata['f']) { echo 'Error: 请先选择发货单';exit;}
$retArr = array(
'itotal' => 0,
'isucc' => 0,
'ifail' => 0,
'err_msg' => array(),
);
$deliveryMdl = app::get('ome')->model('delivery');
$deliveryMdl->filter_use_like = true;
$rows = $deliveryMdl->getList('delivery_id,delivery_bn',$postdata['f'],$postdata['f']['offset'],$postdata['f']['limit']);
$retArr['itotal'] = count($rows);
foreach ($rows as $row) {
// list($res, $msg) = kernel::single('ome_delivery_logistics')->syncLogiStatus($row['delivery_id']);
// 重新订阅
kernel::single('ome_event_trigger_shop_hqepay')->hqepay_pub($row['delivery_id']);
$retArr['isucc']++;
}
echo json_encode($retArr),'ok.';exit;
}
}