mirror of
https://gitee.com/ShopeX/OMS
synced 2026-03-23 02:45:33 +08:00
126 lines
5.3 KiB
PHP
126 lines
5.3 KiB
PHP
<?php
|
||
/**
|
||
* Copyright © ShopeX (http://www.shopex.cn). All rights reserved.
|
||
* See LICENSE file for license details.
|
||
*/
|
||
/**
|
||
* @author ykm 2015-12-28
|
||
* @describe 处理打印模板页面所需要的数据
|
||
*/
|
||
class brush_pagedata {
|
||
private $objPrint;
|
||
private $objElectron;
|
||
private $objExpress;
|
||
|
||
/**
|
||
* 初始化
|
||
* @param mixed $objPrint objPrint
|
||
* @param mixed $objElectron objElectron
|
||
* @param mixed $objExpress objExpress
|
||
* @return mixed 返回值
|
||
*/
|
||
|
||
public function init($objPrint, $objElectron, $objExpress) {
|
||
$this->objPrint = $objPrint;
|
||
$this->objElectron = $objElectron;
|
||
$this->objExpress = $objExpress;
|
||
}
|
||
|
||
/**
|
||
* 获取PageData
|
||
* @param mixed $printData 数据
|
||
* @return mixed 返回结果
|
||
*/
|
||
public function getPageData($printData) {
|
||
$pageData = $this->_getDeliveryAttr($this->objPrint->delivery);
|
||
$pageData['dpi'] = 96;
|
||
$pageData['base_dir'] = kernel::base_url();
|
||
$pageData['title'] = '快递单打印';
|
||
$pageData['uniqid'] = uniqid();
|
||
//组织控件打印数据
|
||
$pageData['printTmpl'] = $this->objExpress->printTpl;
|
||
$pageData['jsondata'] = json_encode($printData);
|
||
$pageData['data'] = addslashes(kernel::single('logisticsmanager_print_format')->array2xml2($printData, 'data'));
|
||
$pageData['order_number'] = $pageData['count'] = $pageData['totalPage'] = count($printData);
|
||
//获取有问题的单据号
|
||
$pageData['err'] = count($printData) ? 'false' : 'true';
|
||
$pageData['errBns'] = $this->objPrint->showError['errBns'];
|
||
$pageData['errIds'] = $this->objPrint->showError['errIds'];
|
||
$pageData['errInfo'] = $this->objPrint->showError['errInfo'];
|
||
//打印单基本信息
|
||
$pageData['allItems'] = $pageData['items'];
|
||
$pageData['delivery'] = array_values($pageData['items']);
|
||
$pageData['print_logi_id'] = $this->objPrint->logi_id;
|
||
$pageData['dly_tmpl_id'] = $this->objElectron->corp['prt_tmpl_id'];
|
||
$pageData['ids'] = array_keys($this->objPrint->delivery);
|
||
$pageData['vid'] = implode(',', $pageData['ids']);
|
||
$pageData['hasOnePrint'] = count($this->objPrint->hasPrint);
|
||
$pageData['hasPrintStr'] = implode(',',array_slice($this->objPrint->hasPrint,0,4)) . ($pageData['hasOnePrint'] > 4 ? '......' : '');
|
||
$pageData['logi_name'] = $this->objElectron->corp['name'];
|
||
$pageData['express_company_no'] = strtoupper($this->objElectron->corp['type']);
|
||
$pageData['o_bn'] = $this->_getOrderBn($pageData['ids']);
|
||
//获取打印版本配置信息
|
||
if($printVer = $this->_getPrintVersion($pageData['express_company_no'])) {
|
||
list($pageData['logiVersionFlag'], $pageData['logicfg'], $pageData['print_logi_version']) = $printVer;
|
||
}
|
||
//打印中路由提交的app及控制器
|
||
$pageData['appCtl'] = 'app=brush&ctl=admin_print';
|
||
return $pageData;
|
||
}
|
||
|
||
private function _getDeliveryAttr($delivery) {
|
||
$items = $idd = $logid = array();
|
||
foreach($delivery as $k => $val) {
|
||
$idd[] = array(
|
||
'delivery_id' => $val['delivery_id'],
|
||
'delivery_bn' => $val['delivery_bn']
|
||
);
|
||
$logid[$val['delivery_id']] = $val['logi_no'];
|
||
$items[$k] = $val;
|
||
$items[$k]['consignee']['name'] = $val['ship_name'];
|
||
$items[$k]['consignee']['area'] = $val['ship_area'];
|
||
$items[$k]['consignee']['province'] = $val['ship_province'];
|
||
$items[$k]['consignee']['city'] = $val['ship_city'];
|
||
$items[$k]['consignee']['district'] = $val['ship_district'];
|
||
$items[$k]['consignee']['addr'] = $val['ship_addr'];
|
||
$items[$k]['consignee']['zip'] = $val['ship_zip'];
|
||
$items[$k]['consignee']['telephone'] = $val['ship_tel'];
|
||
$items[$k]['consignee']['mobile'] = $val['ship_mobile'];
|
||
$items[$k]['consignee']['email'] = $val['ship_email'];
|
||
$items[$k]['consignee']['r_time'] = $val['ship_time'];
|
||
}
|
||
$ret = array(
|
||
'idd' => $idd,
|
||
'logid' => $logid,
|
||
'items' => $items
|
||
);
|
||
return $ret;
|
||
}
|
||
|
||
private function _getOrderBn($deliveryIds) {
|
||
$objDataOrder = kernel::single('logisticsmanager_print_data_order');
|
||
if(empty($objDataOrder->orders)) {
|
||
$sql = 'select o.order_bn from sdb_ome_orders as o left join sdb_brush_delivery_order as d on(o.order_id = d.delivery_id) where delivery_id in (\'' . implode('\',\'', $deliveryIds) . '\')';
|
||
$orderRows = kernel::database()->select($sql);
|
||
} else {
|
||
$orderRows = $objDataOrder->orders;
|
||
}
|
||
$tradeIds = array();
|
||
foreach($orderRows as $row) {
|
||
$tradeIds[] = $row['order_bn'];
|
||
}
|
||
return $tradeIds;
|
||
}
|
||
|
||
private function _getPrintVersion($expressCompanyNo) {
|
||
$logicfg = kernel::single('ome_print_logicfg')->getLogiCfg();
|
||
if($logicfg[$expressCompanyNo]){
|
||
$ecnCfg = $logicfg[$expressCompanyNo];
|
||
$print_logi_version = app::get('ome')->getConf('print_logi_version_'.$this->objPrint->logi_id);
|
||
$plv = intval($print_logi_version);
|
||
return array(1, $ecnCfg, $plv);
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
} |