|
@@ -234,7 +234,7 @@ class Buy
|
|
|
|
|
|
$info['ps_info'] = Dever::db('shop/buy_order_ps')->find(array('order_id' => $info['id']));
|
|
|
if ($info['ps_info']) {
|
|
|
- $info['ps_info']['service_name'] = '商家自送';
|
|
|
+ $info['ps_info']['service'] = Dever::array_decode($info['ps_info']['service']);
|
|
|
$info['ps_info']['cdate'] = date('Y-m-d H:i', $info['ps_info']['cdate']);
|
|
|
if ($info['ps_info']['ydate']) {
|
|
|
$info['ps_info']['ydate'] = date('Y-m-d H:i', $info['ps_info']['ydate']);
|
|
@@ -243,9 +243,14 @@ class Buy
|
|
|
$status = Dever::db('shop/buy_order_ps')->config['status'];
|
|
|
$info['ps_info']['status_name'] = $status[$info['ps_info']['status']];
|
|
|
|
|
|
- if ($info['ps_info']['service_id'] > 0) {
|
|
|
- $service = Dever::db('shop/service')->find($info['ps_info']['service_id']);
|
|
|
- $info['ps_info']['service_name'] = $service['name'];
|
|
|
+ if ($info['ps_info']['service']) {
|
|
|
+ foreach ($info['ps_info']['service'] as $k => $v) {
|
|
|
+ $info['ps_info']['service'][$k]['service_name'] = '供应商自送';
|
|
|
+ if ($v['service_id'] > 0) {
|
|
|
+ $service = Dever::db('shop/service')->find($v['service_id']);
|
|
|
+ $info['ps_info']['service'][$k]['service_name'] = $service['name'];
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -671,22 +676,50 @@ class Buy
|
|
|
),
|
|
|
|
|
|
$time,
|
|
|
-
|
|
|
- array
|
|
|
- (
|
|
|
- array('配送至', $type_info['name']),
|
|
|
- array('配送地址', $type_info['address']),
|
|
|
- ),
|
|
|
-
|
|
|
- array
|
|
|
- (
|
|
|
- array('联系人', $type_info['truename']),
|
|
|
- array('联系电话', $type_info['mobile']),
|
|
|
- array('订单备注', $info['info']),
|
|
|
- ),
|
|
|
)
|
|
|
);
|
|
|
|
|
|
+ $parent_order = array();
|
|
|
+ if ($info['parent_type'] == 2) {
|
|
|
+ $parent_order = Dever::db('shop/sell_order')->find($info['parent_order_id']);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($parent_order && $parent_order['uid']) {
|
|
|
+ if ($parent_order['address_id']) {
|
|
|
+ $address = Dever::load('passport/address')->getOne($parent_order['uid'], $parent_order['address_id']);
|
|
|
+
|
|
|
+ $result[$info['order_num']]['content'][] = array
|
|
|
+ (
|
|
|
+ array('收件人', $address['contact']),
|
|
|
+ array('收件人手机', $address['mobile']),
|
|
|
+ );
|
|
|
+ $result[$info['order_num']]['content'][] = array
|
|
|
+ (
|
|
|
+ array('收货地址', $address['address_info']),
|
|
|
+ array('门牌号', $address['house_number']),
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ $user = Dever::db('passport/user')->find($parent_order['uid']);
|
|
|
+ $result[$info['order_num']]['content'][] = array
|
|
|
+ (
|
|
|
+ array('收件人', $user['username']),
|
|
|
+ array('收件人手机', $user['mobile']),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $result[$info['order_num']]['content'][] = array
|
|
|
+ (
|
|
|
+ array('配送至', $type_info['name']),
|
|
|
+ array('配送地址', $type_info['address']),
|
|
|
+ );
|
|
|
+ $result[$info['order_num']]['content'][] = array
|
|
|
+ (
|
|
|
+ array('联系人', $type_info['truename']),
|
|
|
+ array('联系电话', $type_info['mobile']),
|
|
|
+ array('订单备注', $info['info']),
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
if ($type == 1 && $info['source_id'] > 0) {
|
|
|
if ($info['source_type'] == 2) {
|
|
@@ -834,7 +867,7 @@ class Buy
|
|
|
|
|
|
$info['ps_info'] = Dever::db('shop/buy_order_ps')->find(array('order_id' => $info['id']));
|
|
|
if ($info['ps_info']) {
|
|
|
- $info['ps_info']['service_name'] = '供应商自送';
|
|
|
+ $info['ps_info']['service'] = Dever::array_decode($info['ps_info']['service']);
|
|
|
$info['ps_info']['cdate'] = date('Y-m-d H:i', $info['ps_info']['cdate']);
|
|
|
if ($info['ps_info']['ydate']) {
|
|
|
$info['ps_info']['ydate'] = date('Y-m-d H:i', $info['ps_info']['ydate']);
|
|
@@ -845,15 +878,38 @@ class Buy
|
|
|
$status = Dever::db('shop/buy_order_ps')->config['status'];
|
|
|
$info['ps_info']['status_name'] = $status[$info['ps_info']['status']];
|
|
|
|
|
|
- if ($info['ps_info']['service_id'] > 0) {
|
|
|
-
|
|
|
- $service = Dever::db('shop/service')->find($info['ps_info']['service_id']);
|
|
|
- $info['ps_info']['service_name'] = $service['name'];
|
|
|
- }
|
|
|
+ $service = array();
|
|
|
+ if ($info['ps_info']['service']) {
|
|
|
+ foreach ($info['ps_info']['service'] as $k => $v) {
|
|
|
+ $info['ps_info']['service'][$k]['service_name'] = '供应商自送';
|
|
|
+ if ($v['service_id'] > 0) {
|
|
|
+ $service_info = Dever::db('shop/service')->find($v['service_id']);
|
|
|
+ $info['ps_info']['service'][$k]['service_name'] = $service_info['name'];
|
|
|
+ }
|
|
|
|
|
|
- $info['ps_info']['order_num'] = str_replace("\r\n", ',', $info['ps_info']['order_num']);
|
|
|
+ $service[] = array
|
|
|
+ (
|
|
|
+ array('名称', $info['ps_info']['service'][$k]['service_name']),
|
|
|
+ array('单号', $v['order_num']),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- $info['ps_info']['order_num'] .= '(<a href="https://www.kuaidi100.com/?from=openv" target="_blank">点此手动查单)</a>';
|
|
|
+ $result['物流信息'] = array
|
|
|
+ (
|
|
|
+ 'type' => 'info',
|
|
|
+ 'content' => array
|
|
|
+ (
|
|
|
+ array
|
|
|
+ (
|
|
|
+ array('发货时间', $info['ps_info']['cdate']),
|
|
|
+ array('收货时间', $info['ps_info']['ydate']),
|
|
|
+ array('查单', '<a href="https://www.kuaidi100.com/?from=openv" target="_blank">点此手动查单</a>'),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ $result['物流信息']['content'] = array_merge($result['物流信息']['content'], $service);
|
|
|
+
|
|
|
if ($noprice == 1) {
|
|
|
$result['物流信息'] = array
|
|
|
(
|
|
@@ -915,6 +971,7 @@ class Buy
|
|
|
),
|
|
|
);
|
|
|
}
|
|
|
+ */
|
|
|
}
|
|
|
|
|
|
|
|
@@ -1325,6 +1382,8 @@ class Buy
|
|
|
Dever::alert('这不是门店的订单');
|
|
|
}
|
|
|
|
|
|
+ $order['type'] = 1;
|
|
|
+
|
|
|
$goods = Dever::db('shop/buy_order_goods')->select(array('order_id' => $order['id']));
|
|
|
|
|
|
$shop = Dever::db('shop/info')->find($order['type_id']);
|
|
@@ -1352,7 +1411,6 @@ class Buy
|
|
|
$price = 0;
|
|
|
$num = 0;
|
|
|
foreach ($data as $k => $v) {
|
|
|
- $k = explode('_', $k);
|
|
|
foreach ($v as $k1 => $v1) {
|
|
|
$v1['order_num'] .= '_' . $i;
|
|
|
|
|
@@ -1454,6 +1512,7 @@ class Buy
|
|
|
$data['2_' . $v['id']][] = array
|
|
|
(
|
|
|
'order_id' => $order['id'],
|
|
|
+ 'order_type' => $order['type'],
|
|
|
'order_num' => $order['order_num'],
|
|
|
'order_index' => $order['order_index'],
|
|
|
'type' => 1,
|
|
@@ -1509,6 +1568,7 @@ class Buy
|
|
|
$data['3_' . $v['id']][] = array
|
|
|
(
|
|
|
'order_id' => $order['id'],
|
|
|
+ 'order_type' => $order['type'],
|
|
|
'order_num' => $order['order_num'],
|
|
|
'order_index' => $order['order_index'],
|
|
|
'type' => 1,
|
|
@@ -1684,6 +1744,7 @@ class Buy
|
|
|
*/
|
|
|
public function createOrder($data)
|
|
|
{
|
|
|
+ $where['parent_type'] = $data['order_type'];
|
|
|
$where['parent_order_id'] = $data['order_id'];
|
|
|
$where['type'] = $data['type'];
|
|
|
$where['type_id'] = $data['type_id'];
|
|
@@ -1692,6 +1753,11 @@ class Buy
|
|
|
$where['clear'] = true;
|
|
|
$info = Dever::db('shop/buy_order')->find($where);
|
|
|
|
|
|
+ $goods_info = array();
|
|
|
+ $goods['goods_id'] = $data['goods_id'];
|
|
|
+ $goods['sku_id'] = $data['sku_id'];
|
|
|
+ $goods['clear'] = true;
|
|
|
+
|
|
|
if (!$info) {
|
|
|
$insert = $where;
|
|
|
$insert['name'] = $data['order_id'];
|
|
@@ -1704,27 +1770,30 @@ class Buy
|
|
|
$insert['refund_cash'] = 0;
|
|
|
$insert['refund_p_cash'] = 0;
|
|
|
$id = $state = Dever::db('shop/buy_order')->insert($insert);
|
|
|
+ if ($id) {
|
|
|
+ $goods['order_id'] = $id;
|
|
|
+ $goods_info = Dever::db('shop/buy_order_goods')->find($goods);
|
|
|
+ }
|
|
|
+
|
|
|
} else {
|
|
|
$id = $info['id'];
|
|
|
-
|
|
|
- $update['where_id'] = $id;
|
|
|
- $update['price'] = $info['price'] + ($data['price'] * $data['num']);
|
|
|
- $update['p_price'] = $info['p_price'] + ($data['p_price'] * $data['num']);
|
|
|
- $update['num'] = $info['num'] + $data['num'];
|
|
|
- $state = Dever::db('shop/buy_order')->update($update);
|
|
|
- }
|
|
|
-
|
|
|
- if ($state && $id > 0) {
|
|
|
- $goods_info = Dever::db('shop/buy_order_goods')->find(array('order_id' => $id));
|
|
|
+ $goods['order_id'] = $id;
|
|
|
+ $goods_info = Dever::db('shop/buy_order_goods')->find($goods);
|
|
|
+ $state = false;
|
|
|
if (!$goods_info) {
|
|
|
- $goods['order_id'] = $id;
|
|
|
- $goods['goods_id'] = $data['goods_id'];
|
|
|
- $goods['sku_id'] = $data['sku_id'];
|
|
|
- $goods['price'] = $data['price'];
|
|
|
- $goods['p_price'] = $data['p_price'];
|
|
|
- $goods['num'] = $data['num'];
|
|
|
- Dever::db('shop/buy_order_goods')->insert($goods);
|
|
|
+ $update['where_id'] = $id;
|
|
|
+ $update['price'] = $info['price'] + ($data['price'] * $data['num']);
|
|
|
+ $update['p_price'] = $info['p_price'] + ($data['p_price'] * $data['num']);
|
|
|
+ $update['num'] = $info['num'] + $data['num'];
|
|
|
+ $state = Dever::db('shop/buy_order')->update($update);
|
|
|
}
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($state && $id > 0 && !$goods_info) {
|
|
|
+ $goods['price'] = $data['price'];
|
|
|
+ $goods['p_price'] = $data['p_price'];
|
|
|
+ $goods['num'] = $data['num'];
|
|
|
+ Dever::db('shop/buy_order_goods')->insert($goods);
|
|
|
|
|
|
$state = $this->updateSell($data['source_type'], $data['source_id'], $data['goods_id'], $data['sku_id'], $data['num']);
|
|
|
|
|
@@ -1814,7 +1883,7 @@ class Buy
|
|
|
|
|
|
$info['ps_info'] = Dever::db('shop/buy_order_ps')->find(array('order_id' => $info['id']));
|
|
|
if ($info['ps_info']) {
|
|
|
- $info['ps_info']['service_name'] = '供应商自送';
|
|
|
+ $info['ps_info']['service'] = Dever::array_decode($info['ps_info']['service']);
|
|
|
$info['ps_info']['cdate'] = date('Y-m-d H:i', $info['ps_info']['cdate']);
|
|
|
if ($info['ps_info']['ydate']) {
|
|
|
$info['ps_info']['ydate'] = date('Y-m-d H:i', $info['ps_info']['ydate']);
|
|
@@ -1824,14 +1893,6 @@ class Buy
|
|
|
|
|
|
$ps_status = Dever::db('shop/buy_order_ps')->config['status'];
|
|
|
$info['ps_info']['status_name'] = $status[$info['ps_info']['status']];
|
|
|
-
|
|
|
- if ($info['ps_info']['service_id'] > 0) {
|
|
|
-
|
|
|
- $service = Dever::db('shop/service')->find($info['ps_info']['service_id']);
|
|
|
- $info['ps_info']['service_name'] = $service['name'];
|
|
|
- }
|
|
|
-
|
|
|
- $info['ps_info']['order_num'] = str_replace("\r\n", ',', $info['ps_info']['order_num']);
|
|
|
}
|
|
|
|
|
|
$pdf = Dever::load('pdf/lib/base')->init();
|
|
@@ -1854,29 +1915,68 @@ class Buy
|
|
|
if (!$info['ps_info']) {
|
|
|
$pdf->left('发货供应商:' . $source_info['name']);
|
|
|
} else {
|
|
|
- $pdf->br()->left('发货供应商:' . $source_info['name'], 140)->left('发货时间:' . $info['ps_info']['cdate'], 40);
|
|
|
+
|
|
|
+
|
|
|
+ $pdf->br()->left('发货供应商:' . $source_info['name'], 80)->left('发货时间:' . $info['ps_info']['cdate'], 60)->left('收货时间:' . $info['ps_info']['ydate'], 40);
|
|
|
}
|
|
|
|
|
|
+ if ($info['ps_info'] && $info['ps_info']['service']) {
|
|
|
+ foreach ($info['ps_info']['service'] as $k => $v) {
|
|
|
+ $info['ps_info']['service'][$k]['service_name'] = '供应商自送';
|
|
|
+ if ($v['service_id'] > 0) {
|
|
|
+ $service = Dever::db('shop/service')->find($v['service_id']);
|
|
|
+ $info['ps_info']['service'][$k]['service_name'] = $service['name'];
|
|
|
+ }
|
|
|
|
|
|
- if ($info['ps_info']) {
|
|
|
- $pdf->br()->left('物流信息:' . $info['ps_info']['service_name'] . ' 物流单号:' . $info['ps_info']['order_num'], 140)->left('确认收货时间:' . $info['ps_info']['ydate'], 40);
|
|
|
+ $pdf->br()->left('物流信息:' . $info['ps_info']['service'][$k]['service_name'], 80)->left('物流单号:' . $info['ps_info']['service'][$k]['order_num'], 40);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
$pdf->hr();
|
|
|
|
|
|
} else {
|
|
|
- $pdf->br()->left('订单状态:' . $status, 80)->left('订货人:' . $type_info['truename'], 60)->left('订货时间:' . $operdate, 40);
|
|
|
+ $pdf->br()->left('订单状态:' . $status, 80)->left('订货时间:' . $operdate, 80);
|
|
|
|
|
|
$pdf->hr();
|
|
|
+
|
|
|
+ $parent_order = array();
|
|
|
+ if ($info['parent_type'] == 2) {
|
|
|
+ $parent_order = Dever::db('shop/sell_order')->find($info['parent_order_id']);
|
|
|
+ }
|
|
|
+ if ($parent_order && $parent_order['uid']) {
|
|
|
+ if ($parent_order['address_id']) {
|
|
|
+ $address = Dever::load('passport/address')->getOne($parent_order['uid'], $parent_order['address_id']);
|
|
|
|
|
|
- $pdf->br()->left('配送至:' . $type_info['name'], 150)->right('收件人联系方式:' . $type_info['truename'] . ',' . $type_info['mobile'], 40);
|
|
|
+ $pdf->br()->left('收件人:' . $address['contact'], 80)->left('收件人手机:' . $address['mobile'], 80);
|
|
|
|
|
|
- $pdf->left('配送地址:' . $type_info['address']);
|
|
|
+ $pdf->left('收件地址:' . $address['address_info'] . ',' . $address['house_number']);
|
|
|
+
|
|
|
+ } else {
|
|
|
+ $user = Dever::db('passport/user')->find($parent_order['uid']);
|
|
|
+
|
|
|
+ $pdf->br()->left('收件人:' . $user['username'], 80)->left('收件人手机:' . $user['mobile'], 80);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $pdf->br()->left('配送至:' . $type_info['name'], 80)->left('联系方式:' . $type_info['truename'] . ',' . $type_info['mobile'], 80);
|
|
|
+
|
|
|
+ $pdf->left('配送地址:' . $type_info['address']);
|
|
|
+ }
|
|
|
|
|
|
$pdf->hr();
|
|
|
|
|
|
- if ($info['ps_info']) {
|
|
|
+ if ($info['ps_info'] && $info['ps_info']['service']) {
|
|
|
+ $pdf->br()->left('发货时间:' . $info['ps_info']['cdate'], 80)->left('收货时间:' . $info['ps_info']['ydate'], 80);
|
|
|
+
|
|
|
+ foreach ($info['ps_info']['service'] as $k => $v) {
|
|
|
+ $info['ps_info']['service'][$k]['service_name'] = '供应商自送';
|
|
|
+ if ($v['service_id'] > 0) {
|
|
|
+ $service = Dever::db('shop/service')->find($v['service_id']);
|
|
|
+ $info['ps_info']['service'][$k]['service_name'] = $service['name'];
|
|
|
+ }
|
|
|
|
|
|
+ $pdf->br()->left('物流信息:' . $info['ps_info']['service'][$k]['service_name'], 80)->left('物流单号:' . $info['ps_info']['service'][$k]['order_num'], 80);
|
|
|
+ }
|
|
|
+
|
|
|
$pdf->br()->left('发货时间:' . $info['ps_info']['cdate'], 80)->left('配货员:' . $info['ps_info']['phy'], 70)->left('打包员:' . $info['ps_info']['dby'], 40);
|
|
|
|
|
|
if ($info['ps_info']['zl'] && $info['ps_info']['tj']) {
|
|
@@ -1898,6 +1998,7 @@ class Buy
|
|
|
if ($info['ps_info']['ydate']) {
|
|
|
$pdf->left('到货确认时间:' . $info['ps_info']['ydate']);
|
|
|
}
|
|
|
+ */
|
|
|
|
|
|
$pdf->hr();
|
|
|
}
|