|
@@ -269,8 +269,7 @@ class Buy
|
|
|
$data['order_id'] = $id;
|
|
|
$data['goods_id'] = $v['id'];
|
|
|
$data['sku_id'] = $v['sku_id'];
|
|
|
- $data['price'] = $v['price'] * $v['buy_num'];
|
|
|
- $data['d_price'] = $v['price'];
|
|
|
+ $data['price'] = $v['price'];
|
|
|
$data['num'] = $v['buy_num'];
|
|
|
|
|
|
Dever::db('shop/buy_order_goods')->insert($data);
|
|
@@ -556,9 +555,9 @@ class Buy
|
|
|
|
|
|
$cdate = date('Y-m-d H:i', $info['cdate']);
|
|
|
if ($info['operdate']) {
|
|
|
- $opertime = date('Y-m-d H:i', $info['operdate']);
|
|
|
+ $operdate = date('Y-m-d H:i', $info['operdate']);
|
|
|
} else {
|
|
|
- $opertime = '';
|
|
|
+ $operdate = '';
|
|
|
}
|
|
|
|
|
|
if ($info['fdate']) {
|
|
@@ -595,9 +594,9 @@ class Buy
|
|
|
}
|
|
|
|
|
|
if ($type == 1) {
|
|
|
- $time = array('下单时间:' . $cdate, '订货时间:' . $opertime);
|
|
|
+ $time = array('下单时间:' . $cdate, '订货时间:' . $operdate);
|
|
|
} else {
|
|
|
- $time = array('订货时间:' . $opertime);
|
|
|
+ $time = array('订货时间:' . $operdate);
|
|
|
}
|
|
|
|
|
|
if ($fdate) {
|
|
@@ -652,7 +651,8 @@ class Buy
|
|
|
$config = Dever::load('factory/admin/auth.config');
|
|
|
$button = array();
|
|
|
if ($info['status'] < 5) {
|
|
|
- $button[] = '<button class="layui-btn layui-btn-primary" onclick="print(\''.$info['id'].'\')">打印货单</button>';
|
|
|
+ $print = Dever::url('admin/order.print?id=' . $info['id'] . '&type=1', 'factory');
|
|
|
+ $button[] = '<a class="layui-btn layui-btn-primary" href="'.$print.'" target="_blank">打印货单</a>';
|
|
|
}
|
|
|
if ($info['status'] == 3) {
|
|
|
$send = Dever::url('order_send?id=' . $info['id'], 'factory');
|
|
@@ -670,8 +670,13 @@ class Buy
|
|
|
} elseif ($type == 3) {
|
|
|
$config = Dever::load('factory/admin/auth.config');
|
|
|
$button = array();
|
|
|
- $button[] = '<button class="layui-btn layui-btn-primary" onclick="print(\''.$info['id'].'\')">打印订单</button>';
|
|
|
- if ($info['status'] == 4) {
|
|
|
+ $print = Dever::url('admin/order.print?id=' . $info['id'] . '&type=2', 'store');
|
|
|
+ $button[] = '<a class="layui-btn layui-btn-primary" href="'.$print.'" target="_blank">打印货单</a>';
|
|
|
+ if ($info['status'] == 3) {
|
|
|
+ $send = Dever::url('order_send?id=' . $info['id'] . '&type=2', 'store');
|
|
|
+ $button[] = '<button class="layui-btn layui-btn-primary" onclick="fastEdit($(this), \''.$send.'\', \'配送发货\', \'\', 1)">配送发货</button>';
|
|
|
+ }
|
|
|
+ if ($info['status'] == 4 && $info['type'] == 2) {
|
|
|
$url = Dever::url('admin/factory_order.action?order_id='.$info['id'], 'store');
|
|
|
$button[] = '<button class="layui-btn layui-btn-primary" onclick="load(\''.$url.'\')">确认收货</button>';
|
|
|
}
|
|
@@ -753,7 +758,6 @@ class Buy
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
$body = array();
|
|
|
$body_total = array();
|
|
|
$body_total['price'] = 0;
|
|
@@ -844,7 +848,7 @@ class Buy
|
|
|
|
|
|
if ($body) {
|
|
|
|
|
|
- $head = array('名称', '金额', '数量', '状态');
|
|
|
+ $head = array('名称', '单价', '数量', '状态');
|
|
|
|
|
|
$d = array
|
|
|
(
|
|
@@ -866,7 +870,7 @@ class Buy
|
|
|
|
|
|
if ($refund_body) {
|
|
|
|
|
|
- $head = array('名称', '金额', '数量', '状态');
|
|
|
+ $head = array('名称', '单价', '数量', '状态');
|
|
|
|
|
|
$d = array
|
|
|
(
|
|
@@ -1166,7 +1170,7 @@ class Buy
|
|
|
if ($sku) {
|
|
|
if ($goods['num'] <= $sku['total']) {
|
|
|
|
|
|
- $state = $this->createOrder($order_id, $order_num, 1, $shop['id'], 2, $where['store_id'], $goods['price'], $goods['price'], $goods['d_price'], $goods['num'], $where['goods_id'], $where['sku_id']);
|
|
|
+ $state = $this->createOrder($order_id, $order_num, 1, $shop['id'], 2, $where['store_id'], $goods['price'], $goods['price'], $goods['num'], $where['goods_id'], $where['sku_id']);
|
|
|
if ($state) {
|
|
|
$type_id[] = $where['store_id'];
|
|
|
$id[] = $state;
|
|
@@ -1177,7 +1181,7 @@ class Buy
|
|
|
|
|
|
$goods['num'] = $goods['num'] - $sku['total'];
|
|
|
|
|
|
- $state = $this->createOrder($order_id, $order_num, 1, $shop['id'], 2, $where['store_id'], $goods['price'], $goods['price'], $goods['d_price'], $sku['total'], $where['goods_id'], $where['sku_id']);
|
|
|
+ $state = $this->createOrder($order_id, $order_num, 1, $shop['id'], 2, $where['store_id'], $goods['price'], $goods['price'], $sku['total'], $where['goods_id'], $where['sku_id']);
|
|
|
if (!$state) {
|
|
|
$goods['num'] = $goods['num'] + $sku['total'];
|
|
|
} else {
|
|
@@ -1213,7 +1217,7 @@ class Buy
|
|
|
$sku = Dever::db('factory/goods_sku')->getOne($where);
|
|
|
|
|
|
if ($sku && $sku['p_price'] > 0) {
|
|
|
- $state = $this->createOrder($order_id, $order_num, 1, $shop['id'], 3, $where['factory_id'], $goods['price'], $sku['p_price'], $goods['d_price'], $goods['num'], $where['goods_id'], $where['sku_id']);
|
|
|
+ $state = $this->createOrder($order_id, $order_num, 1, $shop['id'], 3, $where['factory_id'], $goods['price'], $sku['p_price'], $goods['num'], $where['goods_id'], $where['sku_id']);
|
|
|
if ($state) {
|
|
|
$type_id[] = $where['factory_id'];
|
|
|
$id[] = $state;
|
|
@@ -1244,7 +1248,7 @@ class Buy
|
|
|
}
|
|
|
|
|
|
|
|
|
- private function createOrder($order_id, $order_num, $type, $type_id, $source_type, $source_id, $price, $p_price, $d_price, $num, $goods_id, $sku_id)
|
|
|
+ private function createOrder($order_id, $order_num, $type, $type_id, $source_type, $source_id, $price, $p_price, $num, $goods_id, $sku_id)
|
|
|
{
|
|
|
$where['parent_order_id'] = $order_id;
|
|
|
$where['type'] = $type;
|
|
@@ -1261,16 +1265,16 @@ class Buy
|
|
|
$data['order_num'] = $order_num;
|
|
|
$data['operdate'] = time();
|
|
|
$data['status'] = 3;
|
|
|
- $data['price'] = $price;
|
|
|
- $data['p_price'] = $p_price;
|
|
|
+ $data['price'] = $price * $num;
|
|
|
+ $data['p_price'] = $p_price * $num;
|
|
|
$data['num'] = $num;
|
|
|
$id = $state = Dever::db('shop/buy_order')->insert($data);
|
|
|
} else {
|
|
|
$id = $info['id'];
|
|
|
|
|
|
$data['where_id'] = $id;
|
|
|
- $data['price'] = $info['price'] + $price;
|
|
|
- $data['p_price'] = $info['p_price'] + $p_price;
|
|
|
+ $data['price'] = $info['price'] + ($price * $num);
|
|
|
+ $data['p_price'] = $info['p_price'] + ($p_price * $num);
|
|
|
$data['num'] = $info['num'] + $num;
|
|
|
$state = Dever::db('shop/buy_order')->update($data);
|
|
|
}
|
|
@@ -1282,7 +1286,6 @@ class Buy
|
|
|
$goods['goods_id'] = $goods_id;
|
|
|
$goods['sku_id'] = $sku_id;
|
|
|
$goods['price'] = $price;
|
|
|
- $goods['d_price'] = $d_price;
|
|
|
$goods['p_price'] = $p_price;
|
|
|
$goods['num'] = $num;
|
|
|
Dever::db('shop/buy_order_goods')->insert($goods);
|
|
@@ -1326,4 +1329,244 @@ class Buy
|
|
|
return $state;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ public function printer($user)
|
|
|
+ {
|
|
|
+ $id = Dever::input('id');
|
|
|
+ $type = Dever::input('type', 1);
|
|
|
+
|
|
|
+ $factory_config = Dever::db('main/factory_config')->find();
|
|
|
+ $main_config = Dever::db('main/config')->find();
|
|
|
+
|
|
|
+ $config = Dever::db('shop/buy_order')->config;
|
|
|
+
|
|
|
+ $info = Dever::db('shop/buy_order')->one($id);
|
|
|
+
|
|
|
+ $source_info = Dever::db('factory/info')->find($info['source_id']);
|
|
|
+ if ($type == 2) {
|
|
|
+
|
|
|
+ $member = Dever::db('store/member')->find($user['id']);
|
|
|
+ $name = '仓库名称';
|
|
|
+ } else {
|
|
|
+
|
|
|
+ $member = Dever::db('factory/member')->find($user['id']);
|
|
|
+ $name = '工厂名称';
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($info['type'] == 1) {
|
|
|
+ $type_info = Dever::db('shop/info')->find($info['type_id']);
|
|
|
+ } elseif ($info['type'] == 2) {
|
|
|
+ $type_info = Dever::db('store/info')->find($info['type_id']);
|
|
|
+ } elseif ($info['type'] == 3) {
|
|
|
+ $type_info = Dever::db('store/info')->find($info['type_id']);
|
|
|
+ }
|
|
|
+
|
|
|
+ $cdate = date('Y-m-d H:i', $info['cdate']);
|
|
|
+ if ($info['operdate']) {
|
|
|
+ $operdate = date('Y-m-d H:i', $info['operdate']);
|
|
|
+ } else {
|
|
|
+ $operdate = '';
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($info['fdate']) {
|
|
|
+ $fdate = date('Y-m-d H:i', $info['fdate']);
|
|
|
+ } else {
|
|
|
+ $fdate = '';
|
|
|
+ }
|
|
|
+
|
|
|
+ $status = $config['status'][$info['status']];
|
|
|
+
|
|
|
+ $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']['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']);
|
|
|
+ } else {
|
|
|
+ $info['ps_info']['ydate'] = '无';
|
|
|
+ }
|
|
|
+
|
|
|
+ $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();
|
|
|
+
|
|
|
+ $pdf->hr('-', $main_config['name']);
|
|
|
+
|
|
|
+ $pdf->br()->font(20)->center('订货单号:' . $info['order_num']);
|
|
|
+ $pdf->font(10);
|
|
|
+ $pdf->br();
|
|
|
+
|
|
|
+ $pdf->br()->left($name . ':' . $type_info['name'], 80)->left('制单人:' . $member['name'], 60)->left('制单时间:' . date('Y-m-d H:i'), 40);
|
|
|
+
|
|
|
+ $pdf->hr();
|
|
|
+
|
|
|
+ if ($type == 2 && $info['type'] == 2) {
|
|
|
+ $pdf->br()->left('订单状态:' . $status, 140)->left('订货时间:' . $operdate, 40);
|
|
|
+
|
|
|
+ $pdf->hr();
|
|
|
+
|
|
|
+ $pdf->br()->left('发货供应商:' . $source_info['name'], 140)->left('发货时间:' . $info['ps_info']['cdate'], 40);
|
|
|
+
|
|
|
+ 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->hr();
|
|
|
+
|
|
|
+ } else {
|
|
|
+ $pdf->br()->left('订单状态:' . $status, 80)->left('订货人:' . $type_info['truename'], 60)->left('订货时间:' . $operdate, 40);
|
|
|
+
|
|
|
+ $pdf->hr();
|
|
|
+
|
|
|
+ $pdf->br()->left('配送至:' . $type_info['name'], 150)->right('收件人联系方式:' . $type_info['truename'] . ',' . $type_info['mobile'], 40);
|
|
|
+
|
|
|
+ $pdf->left('配送地址:' . $type_info['address']);
|
|
|
+
|
|
|
+ $pdf->hr();
|
|
|
+
|
|
|
+ if ($info['ps_info']) {
|
|
|
+
|
|
|
+ $pdf->br()->left('发货时间:' . $info['ps_info']['cdate'], 80)->left('配货员::' . $info['ps_info']['phy'], 70)->left('打包员:' . $info['ps_info']['dby'], 40);
|
|
|
+
|
|
|
+ $pdf->br()->left('包裹重量:' . $info['ps_info']['zl'] . '克', 80)->left('包裹体积:' . $info['ps_info']['tj'] . '立方厘米', 70)->left('包裹数量:' . $info['ps_info']['num'], 40);
|
|
|
+
|
|
|
+ $pdf->br()->left('物流信息:' . $info['ps_info']['service_name'], 40);
|
|
|
+
|
|
|
+ if ($info['ps_info']['order_num']) {
|
|
|
+ $pdf->left('物流单号:' . $info['ps_info']['order_num'], 70);
|
|
|
+ }
|
|
|
+
|
|
|
+ $pdf->left('到货确认时间:' . $info['ps_info']['ydate']);
|
|
|
+
|
|
|
+ $pdf->hr();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $body = array();
|
|
|
+ $body_total = array();
|
|
|
+ $body_total['price'] = 0;
|
|
|
+ $body_total['num'] = 0;
|
|
|
+ $goods = Dever::db('shop/buy_order_goods')->select(array('order_id' => $info['id']));
|
|
|
+ $goods_status = Dever::db('shop/buy_order_goods')->config['status'];
|
|
|
+
|
|
|
+ $refund_body = array();
|
|
|
+ $refund_body_total = array();
|
|
|
+ $refund_body_total['price'] = 0;
|
|
|
+ $refund_body_total['num'] = 0;
|
|
|
+ foreach ($goods as $k => $v) {
|
|
|
+ if ($type == 1) {
|
|
|
+ $v['price'] = $v['p_price'];
|
|
|
+ }
|
|
|
+ $goods_info = Dever::load('goods/lib/info')->getInfoBySku($v['goods_id'], $v['sku_id']);
|
|
|
+ $status = $goods_status[$v['status']];
|
|
|
+
|
|
|
+ $tk = Dever::db('shop/buy_order_refund')->find(array('order_id' => $info['id'], 'order_goods_id' => $v['id'], 'type' => 2));
|
|
|
+
|
|
|
+ if (isset($goods_info['sku'])) {
|
|
|
+ $sku = $goods_info['sku']['string'];
|
|
|
+ } else {
|
|
|
+ $sku = '无';
|
|
|
+ }
|
|
|
+
|
|
|
+ $d = array
|
|
|
+ (
|
|
|
+ $goods_info['id'],
|
|
|
+ $goods_info['name'],
|
|
|
+ $sku,
|
|
|
+ $v['price'],
|
|
|
+ 'x ' . $v['num'],
|
|
|
+ );
|
|
|
+ if ($type == 2) {
|
|
|
+ unset($d[3]);
|
|
|
+ }
|
|
|
+ if ($tk && $v['status'] == 3 && $tk['status'] != 3) {
|
|
|
+
|
|
|
+ $refund_body[] = $d;
|
|
|
+ $refund_body_total['price'] += $v['price'];
|
|
|
+ $refund_body_total['num'] += $v['num'];
|
|
|
+ } else {
|
|
|
+ $body[] = $d;
|
|
|
+ $body_total['price'] += $v['price'];
|
|
|
+ $body_total['num'] += $v['num'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $head = array(array('商品编号', 40), array('商品名称', 60), array('商品属性', 40), array('单价', 40), array('数量', 20));
|
|
|
+ if ($type == 2) {
|
|
|
+ unset($head[3]);
|
|
|
+ $head[1][1] = 70;
|
|
|
+ $head[2][1] = 60;
|
|
|
+ }
|
|
|
+ if ($body) {
|
|
|
+ $pdf->center('订单商品');
|
|
|
+ $pdf->br();
|
|
|
+ foreach ($head as $k => $v) {
|
|
|
+ $pdf->left($v[0], $v[1]);
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach ($body as $k => $v) {
|
|
|
+ $pdf->br();
|
|
|
+ foreach ($head as $k1 => $v1) {
|
|
|
+ $pdf->left($v[$k1], $v1[1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $pdf->br();
|
|
|
+ $pdf->right('共'.$body_total['num'].'件商品,合计金额¥' . $body_total['price'] . '元');
|
|
|
+ $pdf->hr();
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($refund_body) {
|
|
|
+ $pdf->center('缺货与报损商品');
|
|
|
+ $pdf->br();
|
|
|
+ foreach ($head as $k => $v) {
|
|
|
+ $pdf->left($v[0], $v[1]);
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach ($refund_body as $k => $v) {
|
|
|
+ $pdf->br();
|
|
|
+ foreach ($head as $k1 => $v1) {
|
|
|
+ $pdf->left($v[$k1], $v1[1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $pdf->br();
|
|
|
+ if ($type == 2) {
|
|
|
+ $pdf->right('共'.$body_total['num'].'件商品');
|
|
|
+ } else {
|
|
|
+ $pdf->right('共'.$body_total['num'].'件商品,合计金额¥' . $body_total['price'] . '元');
|
|
|
+ }
|
|
|
+
|
|
|
+ $pdf->hr();
|
|
|
+
|
|
|
+ }
|
|
|
+ $pdf->br(1);
|
|
|
+
|
|
|
+ $pdf->right('如遇任何问题请致电客服');
|
|
|
+ $pdf->br();
|
|
|
+
|
|
|
+ $pdf->font(20);
|
|
|
+ $pdf->left($main_config['name'], 160);
|
|
|
+
|
|
|
+ $pdf->font(10);
|
|
|
+ $pdf->right('电话:' . $factory_config['phone'], 30);
|
|
|
+
|
|
|
+ $pdf->br();
|
|
|
+
|
|
|
+ $pdf->left($main_config['site'], 160);
|
|
|
+
|
|
|
+ $pdf->font(10);
|
|
|
+ $pdf->right($main_config['worktime'], 30);
|
|
|
+
|
|
|
+ $pdf->out('订货单');
|
|
|
+ }
|
|
|
}
|