Files
OMS/app/logisticsaccounts/lib/taoguan/delivery.php
2025-12-28 23:13:25 +08:00

177 lines
6.1 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 logisticsaccounts_taoguan_delivery implements logisticsaccounts_interface_estimate{
/**
* 发货单对应订单号
*/
static $orderidList = array();
/**
* 发货单相关信息
*/
static $deliveryInfo = array();
function get_total($now_time,$last_time){
$sqlstr = '';
if($last_time){
$sqlstr.=' AND delivery_time>='.$last_time;
}
$sqlstr.=' AND delivery_time<='.$now_time;
$db=kernel::database();
$sql = 'SELECT delivery_id,delivery_time FROM `sdb_ome_delivery` WHERE parent_id=0 AND process=\'true\' '.$sqlstr.' UNION ALL SELECT delivery_id,delivery_time FROM sdb_ome_delivery_bill WHERE `status` =\'1\''.$sqlstr.' ORDER BY delivery_time DESC';
$delivery = $db->select($sql);
return count($delivery);
}
/**
* 清除Static
* @return mixed 返回值
*/
public function clearStatic() {
self::$orderidList = [];
self::$deliveryInfo = [];
}
function delivery_list($now_time,$last_time,$offset,$limit){
$this->clearStatic();
$deliOrderObj = app::get('ome')->model("delivery_order");
$orderObj = app::get('ome')->model("orders");
$sqlstr = '';
if($last_time){
$sqlstr.=' AND delivery_time>='.$last_time;
}
$sqlstr.=' AND delivery_time<='.$now_time;
$db=kernel::database();
$sql = '(SELECT delivery_id,logi_no, weight, delivery_cost_expect ,delivery_cost_actual,delivery_time FROM `sdb_ome_delivery` as d WHERE parent_id=0 AND process=\'true\' '.$sqlstr.' ) UNION ALL (SELECT delivery_id,logi_no, weight, delivery_cost_expect ,delivery_cost_actual,delivery_time FROM sdb_ome_delivery_bill WHERE `status` =\'1\''.$sqlstr.' ) ORDER by delivery_time ASC LIMIT '.$offset.','.$limit;
$rows = $db->select($sql);
foreach($rows as $k=>$v){
$delivery = $this->get_delivery($v['delivery_id']);
$rows[$k]['branch_id'] = $delivery['branch_id'];
$rows[$k]['shop_id'] = $delivery['shop_id'];
$rows[$k]['logi_name'] = $delivery['logi_name'];
$rows[$k]['cost_protect'] = $delivery['cost_protect'];
$rows[$k]['ship_name'] = $delivery['ship_name'];
$rows[$k]['ship_area'] = $delivery['ship_area'];
$rows[$k]['delivery_bn'] = $delivery['delivery_bn'];
$rows[$k]['logi_id'] = $delivery['logi_id'];
$rows[$k]['ship_province'] = $delivery['ship_province'];
$rows[$k]['ship_city'] = $delivery['ship_city'];
$rows[$k]['ship_district'] = $delivery['ship_district'];
$rows[$k]['ship_addr'] = $delivery['ship_addr'];
$rows[$k]['order_bn'] = $this->get_order_list($v['delivery_id']);
$rows[$k]['delivery_cost_expect'] = $v['delivery_cost_actual'];
}
return $rows;
}
/**
* 仓库列表
*/
function branch_list(){
#过滤o2o门店虚拟仓库
$branchObj = app::get('ome')->model('branch');
$branchList = $branchObj->getList('branch_id,name', array('b_type'=>1), 0, -1);
return $branchList;
}
/**
* 获取仓库详情
*/
function get_branch($branch_id){
$branchObj = app::get('ome')->model('branch');
$branch = $branchObj->dump($branch_id,'branch_id,name');
return $branch;
}
/**
* 店铺列表
*/
function shop_list(){
$shopObj = app::get('ome')->model("shop");
$shopList = $shopObj->getList('shop_id,name,shop_type');
return $shopList;
}
/**
* 获取店铺详情
*/
function get_shop($shop_id){
$shopObj = app::get('ome')->model("shop");
$shop = $shopObj->dump(array('shop_id'=>$shop_id),'shop_id,name,shop_type');
return $shop;
}
/**
* 物流公司列表
*/
function logi_list(){
#过滤o2o门店虚拟物流公司
$dly_corpObj = app::get('ome')->model("dly_corp");
$dly_corpList = $dly_corpObj->getList('type,name,corp_id', array('d_type'=>'1'));
return $dly_corpList;
}
/**
* 获取物流公司详情
*/
function get_logi($logi_id){
$dly_corpObj = app::get('ome')->model("dly_corp");
$dly_corp = $dly_corpObj->dump(array('corp_id'=>$logi_id),'type,name,corp_id');
return $dly_corp;
}
/**
* 获取物流公司详情
*/
function get_loginame($logi_name){
$db=kernel::database();
$sql = "SELECT corp_id ,name FROM sdb_ome_dly_corp WHERE name='$logi_name'";
$row = $db->selectrow($sql);
return $row;
}
protected function get_order_list($delivery_id){
if (!self::$orderidList[$delivery_id]) {
$orderidList = self::$orderidList[$delivery_id];
$db=kernel::database();
$sql = 'SELECT O.order_bn FROM sdb_ome_delivery_order as DO LEFT JOIN sdb_ome_orders as O ON DO.order_id=O.order_id WHERE DO.delivery_id='.$delivery_id;
$order = $db->select($sql);
$order_bn=array();
foreach($order as $k=>$v){
$order_bn[]= $v['order_bn'];
}
if($order_bn){
$order_bn = implode(',',$order_bn);
self::$orderidList[$delivery_id] = $order_bn;
}
}
return self::$orderidList[$delivery_id];
}
protected function get_delivery($delivery_id){
if ( !self::$deliveryInfo[$delivery_id] ){
$db=kernel::database();
$sql = 'SELECT d.is_cod,d.branch_id,d.shop_id,d.logi_name,d.cost_protect,d.ship_name,d.ship_area,d.delivery_bn ,d.logi_id,d.ship_province,d.ship_city,d.ship_district,d.ship_addr FROM sdb_ome_delivery as d WHERE d.delivery_id='.$delivery_id;
$delivery = $db->selectrow($sql);
self::$deliveryInfo[$delivery_id] = $delivery;
}
return self::$deliveryInfo[$delivery_id];
}
}
?>