commit
a9b0f7e6c3
@ -37,7 +37,15 @@ class BeforehandOrderController extends BaseAdminController
|
||||
{
|
||||
return $this->dataLists(new BeforehandOrderLists());
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表统计
|
||||
*/
|
||||
public function statistics_count()
|
||||
{
|
||||
$params=$this->request->get();
|
||||
$data=BeforehandOrderLogic::statisticsCount($params);
|
||||
return $this->data($data);
|
||||
}
|
||||
public function warehousing_lists()
|
||||
{
|
||||
return $this->dataLists(new BeforehandOrderTwoLists());
|
||||
|
@ -202,14 +202,14 @@ class BeforehandOrderLogic extends BaseLogic
|
||||
}
|
||||
|
||||
$cart_select[$k]['price'] = $v['price'];
|
||||
// //判断如果零售价小于供货价,则零售价等于供货价
|
||||
// if ($v['price'] < $find['purchase'] && $find['purchase'] != 0) {
|
||||
// $cart_select[$k]['price'] = $find['purchase'];
|
||||
// }
|
||||
// if ($user['user_ship'] == 4 && $find['cost'] != 0) {
|
||||
// $cart_select[$k]['price'] = $find['cost'];
|
||||
// $total_prices = bcmul($find['cost'], $v['cart_num'], 2);
|
||||
// }
|
||||
// //判断如果零售价小于供货价,则零售价等于供货价
|
||||
// if ($v['price'] < $find['purchase'] && $find['purchase'] != 0) {
|
||||
// $cart_select[$k]['price'] = $find['purchase'];
|
||||
// }
|
||||
// if ($user['user_ship'] == 4 && $find['cost'] != 0) {
|
||||
// $cart_select[$k]['price'] = $find['cost'];
|
||||
// $total_prices = bcmul($find['cost'], $v['cart_num'], 2);
|
||||
// }
|
||||
$cart_select[$k]['cost'] = $find['cost'];
|
||||
$cart_select[$k]['purchase'] = $find['purchase'];
|
||||
$cart_select[$k]['vip'] = 0;
|
||||
@ -375,9 +375,9 @@ class BeforehandOrderLogic extends BaseLogic
|
||||
if ($count > 0) {
|
||||
throw new BusinessException('订单中有数量为0的商品,请先处理');
|
||||
}
|
||||
$user_ship=0;
|
||||
if($order['uid']>0){
|
||||
$user_ship=User::where('id', $order['uid'])->value('user_ship')??0;
|
||||
$user_ship = 0;
|
||||
if ($order['uid'] > 0) {
|
||||
$user_ship = User::where('id', $order['uid'])->value('user_ship') ?? 0;
|
||||
}
|
||||
Db::startTrans();
|
||||
try {
|
||||
@ -391,14 +391,15 @@ class BeforehandOrderLogic extends BaseLogic
|
||||
'financial_pm' => 0,
|
||||
'batch' => 0,
|
||||
'mark' => $mark,
|
||||
'order_type' => $order['order_type'] ?? '',
|
||||
];
|
||||
$arr['delivery_time'] = strtotime($delivery_time);
|
||||
$res = WarehouseOrder::create($arr);
|
||||
foreach ($info as $key => $arr) {
|
||||
if($user_ship==0){
|
||||
$price=0;
|
||||
}else{
|
||||
$price=StoreProductGroupPrice::where('product_id',$arr['product_id'])->where('group_id',$user_ship)->value('price')??0;
|
||||
if ($user_ship == 0) {
|
||||
$price = 0;
|
||||
} else {
|
||||
$price = StoreProductGroupPrice::where('product_id', $arr['product_id'])->where('group_id', $user_ship)->value('price') ?? 0;
|
||||
}
|
||||
$data = [
|
||||
'warehouse_id' => $warehouse_id,
|
||||
@ -418,7 +419,7 @@ class BeforehandOrderLogic extends BaseLogic
|
||||
'code' => $res['code'],
|
||||
'unit' => $arr['unit'] ?? 0,
|
||||
];
|
||||
WarehouseProductLogic::setOutbound($data,1,$admin_id);
|
||||
WarehouseProductLogic::setOutbound($data, 1, $admin_id);
|
||||
}
|
||||
$finds = WarehouseProduct::where('oid', $res['id'])->field('sum(nums) as nums,sum(total_price) as total_price')->find();
|
||||
WarehouseOrder::where('id', $res['id'])->update(['total_price' => $finds['total_price'], 'nums' => $finds['nums']]);
|
||||
@ -431,7 +432,7 @@ class BeforehandOrderLogic extends BaseLogic
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* @notes 一键报损出库
|
||||
* @param array $params
|
||||
* @return bool
|
||||
@ -492,7 +493,7 @@ class BeforehandOrderLogic extends BaseLogic
|
||||
'code' => $res['code'],
|
||||
'unit' => $arr['unit'] ?? 0,
|
||||
];
|
||||
WarehouseProductLogic::setOutbound($data,1,$admin_id);
|
||||
WarehouseProductLogic::setOutbound($data, 1, $admin_id);
|
||||
}
|
||||
$finds = WarehouseProduct::where('oid', $res['id'])->field('sum(nums) as nums,sum(total_price) as total_price')->find();
|
||||
WarehouseOrder::where('id', $res['id'])->update(['total_price' => $finds['total_price'], 'nums' => $finds['nums']]);
|
||||
@ -734,7 +735,7 @@ class BeforehandOrderLogic extends BaseLogic
|
||||
$find = WarehouseOrder::where('id', $order['outbound_id'])->find();
|
||||
$order['order_id'] = $find['code'];
|
||||
$order['pay_price'] = $find['total_price'];
|
||||
if (!empty($params['type']) &&$params['type'] == 3) {
|
||||
if (!empty($params['type']) && $params['type'] == 3) {
|
||||
$file_path = $order_info->exportWithoutPrice($data, $order, $other_data);
|
||||
} else {
|
||||
$file_path = $order_info->export($data, $order, $other_data);
|
||||
@ -839,7 +840,7 @@ class BeforehandOrderLogic extends BaseLogic
|
||||
$v['store_name'] = $find['store_name'];
|
||||
$v['mark'] = $find['after_sales'];
|
||||
$v['pay_price'] = bcmul($v['purchase'], $v['nums'], 2);
|
||||
$v['profit']= bcsub($v['total_price'], $v['pay_price'], 2);
|
||||
$v['profit'] = bcsub($v['total_price'], $v['pay_price'], 2);
|
||||
$total_profit = bcadd($total_profit, $v['profit'], 2);
|
||||
$pay_price = bcadd($pay_price, $v['pay_price'], 2);
|
||||
$total_price = bcadd($total_price, $v['total_price'], 2);
|
||||
@ -868,12 +869,12 @@ class BeforehandOrderLogic extends BaseLogic
|
||||
}
|
||||
$order['admin_name'] = Admin::where('id', $order['admin_id'])->value('name');
|
||||
$data = WarehouseProduct::where('oid', $order['outbound_id'])->where('nums', '>', 0)->select();
|
||||
if($order['uid']>0){
|
||||
if ($order['uid'] > 0) {
|
||||
$user_ship = User::where('id', $order['uid'])->value('user_ship');
|
||||
if($user_ship==0){
|
||||
if ($user_ship == 0) {
|
||||
throw new BusinessException('用户角色id不能为0');
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
throw new BusinessException('该订单没选择会员用户');
|
||||
}
|
||||
$total_price = 0;
|
||||
@ -884,13 +885,13 @@ class BeforehandOrderLogic extends BaseLogic
|
||||
$v['unit_name'] = StoreProductUnit::where('id', $find['unit'])->value('name');
|
||||
$v['store_name'] = $find['store_name'];
|
||||
$v['mark'] = $find['after_sales'];
|
||||
$v['purchase']=StoreProductGroupPrice::where('product_id',$v['product_id'])->where('group_id',$user_ship)->value('price');
|
||||
if($v['purchase']){
|
||||
$v['purchase'] = StoreProductGroupPrice::where('product_id', $v['product_id'])->where('group_id', $user_ship)->value('price');
|
||||
if ($v['purchase']) {
|
||||
$v['pay_price'] = bcmul($v['purchase'], $v['nums'], 2);
|
||||
}else{
|
||||
$v['pay_price']=0;
|
||||
} else {
|
||||
$v['pay_price'] = 0;
|
||||
}
|
||||
$v['profit']= bcsub($v['total_price'], $v['pay_price'], 2);
|
||||
$v['profit'] = bcsub($v['total_price'], $v['pay_price'], 2);
|
||||
$total_profit = bcadd($total_profit, $v['profit'], 2);
|
||||
$pay_price = bcadd($pay_price, $v['pay_price'], 2);
|
||||
$total_price = bcadd($total_price, $v['total_price'], 2);
|
||||
@ -904,8 +905,8 @@ class BeforehandOrderLogic extends BaseLogic
|
||||
$order['total_profit'] = $total_profit;
|
||||
$order['total_price'] = $total_price;
|
||||
$order['group_title'] = '';
|
||||
if($user_ship){
|
||||
$order['group_title'] = UserShip::where('id',$user_ship)->value('title');
|
||||
if ($user_ship) {
|
||||
$order['group_title'] = UserShip::where('id', $user_ship)->value('title');
|
||||
}
|
||||
$file_path = $order_info->export($data, $order, $other_data, 2);
|
||||
return $file_path;
|
||||
@ -948,4 +949,56 @@ class BeforehandOrderLogic extends BaseLogic
|
||||
$model->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* 统计
|
||||
*/
|
||||
public static function statisticsCount($params)
|
||||
{
|
||||
$where = [];
|
||||
if ($params['warehouse_type'] > 0) {
|
||||
switch ($params['warehouse_type']) {
|
||||
case 1:
|
||||
$where[] = ['is_outbound', '=', 0];
|
||||
$where[] = ['order_type', '<>', 5];
|
||||
break;
|
||||
case 2:
|
||||
$where[] = ['is_outbound', '=', 1];
|
||||
break;
|
||||
case 3:
|
||||
$where[] = ['is_warehousing', '=', 0];
|
||||
break;
|
||||
case 4:
|
||||
$where[] = ['is_warehousing', '=', 1];
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
$orderCounts = BeforehandOrder::where('order_type', 'in', [1, 2, 3, 4, 5, 7, 8])
|
||||
->group('order_type')
|
||||
->where(['order_type', Db::raw('count(*) as count')])
|
||||
->column('count', 'order_type');
|
||||
d($orderCounts);
|
||||
$order_type_1 = BeforehandOrder::where([['order_type', '=', 1]])->count();
|
||||
$order_type_2 = BeforehandOrder::where([['order_type', '=', 2]])->count();
|
||||
$order_type_3 = BeforehandOrder::where([['order_type', '=', 3]])->count();
|
||||
$order_type_4 = BeforehandOrder::where([['order_type', '=', 4]])->count();
|
||||
$order_type_5 = BeforehandOrder::where([['order_type', '=', 5]])->count();
|
||||
$order_type_7 = BeforehandOrder::where([['order_type', '=', 7]])->count();
|
||||
$order_type_8 = BeforehandOrder::where([['order_type', '=', 8]])->count();
|
||||
|
||||
|
||||
|
||||
$outbound_0 = BeforehandOrder::where([['is_outbound', '=', 0], ['order_type', '<>', 5]])->count();
|
||||
$outbound_1 = BeforehandOrder::where([['is_outbound', '=', 1]])->count();
|
||||
$warehousing_0 = BeforehandOrder::where([['is_warehousing', '=', 0]])->count();
|
||||
$warehousing_1 = BeforehandOrder::where([['is_warehousing', '=', 1]])->count();
|
||||
|
||||
return [
|
||||
'outbound_0' => $outbound_0,
|
||||
'outbound_1' => $outbound_1,
|
||||
'warehousing_0' => $warehousing_0,
|
||||
'warehousing_1' => $warehousing_1,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -180,6 +180,7 @@ class WarehouseProductLogic extends BaseLogic
|
||||
'unit' => $params['unit'] ?? 0,
|
||||
'status' => 1,
|
||||
'mark' => $params['mark'] ?? '',
|
||||
'order_type' => $params['order_type'] ?? '',
|
||||
];
|
||||
$res = WarehouseProduct::create($data);
|
||||
SqlChannelLog('WarehouseProduct', $res->id, $params['nums'], $params['financial_pm'] == 1 ? 1 : -1, Request()->url(),$admin_id);
|
||||
|
@ -71,9 +71,13 @@ class DemoLogic extends BaseLogic
|
||||
//活动价
|
||||
$find42 = StoreProductGroupPrice::where('product_id', $v['product_id'])->where('group_id', 42)->find();
|
||||
if ($find42) {
|
||||
$find42->save(['price' => bcadd($v['price4'], 0, 2)]);
|
||||
if($v['price9']>0){
|
||||
$find42->save(['price' => bcadd($v['price9'], 0, 2)]);
|
||||
}
|
||||
} else {
|
||||
StoreProductGroupPrice::insert(['product_id' => $v['product_id'], 'group_id' => 42, 'price' => bcadd($v['price9'], 0, 2), 'price_type' => 3, 'base_rate' =>0]);
|
||||
if($v['price9']>0){
|
||||
StoreProductGroupPrice::insert(['product_id' => $v['product_id'], 'group_id' => 42, 'price' => bcadd($v['price9'], 0, 2), 'price_type' => 3, 'base_rate' =>0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -26,7 +26,6 @@ class UserLists extends BaseAdminDataLists implements ListsSearchInterface
|
||||
{
|
||||
return [
|
||||
'=' => ['id','user_ship','store_id'],
|
||||
'%like%' => ['mobile'],
|
||||
];
|
||||
}
|
||||
|
||||
@ -50,9 +49,12 @@ class UserLists extends BaseAdminDataLists implements ListsSearchInterface
|
||||
return [];
|
||||
}
|
||||
}
|
||||
$query = User::where($this->searchWhere);
|
||||
if (!empty($this->params['nickname'])) {
|
||||
$query->whereLike('real_name|mobile', "%{$this->params['nickname']}%");
|
||||
}
|
||||
$field = "id,nickname,real_name,sex,avatar,account,mobile,now_money,user_ship,create_time,purchase_funds,integral";
|
||||
$lists = User::where($this->searchWhere)
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
$lists = $query->limit($this->limitOffset, $this->limitLength)
|
||||
->field($field)
|
||||
->order('id desc')
|
||||
->select()->each(function($data){
|
||||
|
@ -11,6 +11,7 @@ use app\common\model\store_order_cart_info\StoreOrderCartInfo;
|
||||
use app\common\model\store_product\StoreProduct;
|
||||
use app\common\model\store_product_price\StoreProductPrice;
|
||||
use app\common\model\user_recharge\UserRecharge;
|
||||
use app\common\model\warehouse_product\WarehouseProduct;
|
||||
use support\Cache;
|
||||
use think\facade\Db;
|
||||
use Webman\RedisQueue\Redis;
|
||||
@ -68,6 +69,7 @@ class Task
|
||||
|
||||
$this->updateProductPrice();
|
||||
$this->confirmProductPrice();
|
||||
$this->setPurchase();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -127,4 +129,31 @@ class Task
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置出库商品的供货价
|
||||
* @return void
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function setPurchase()
|
||||
{
|
||||
$list = WarehouseProduct::where('purchase', 0)->order('id desc')->limit(100)->select()->toArray();
|
||||
$productIds = array_unique(array_column($list, 'product_id'));
|
||||
$products = StoreProduct::whereIn('id', $productIds)->field('id,purchase')->select()->toArray();
|
||||
$products = reset_index($products, 'id');
|
||||
$update = [];
|
||||
foreach ($list as $item) {
|
||||
$product = $products[$item['product_id']] ?? [];
|
||||
if (empty($product) || empty($product['purchase'])) {
|
||||
continue;
|
||||
}
|
||||
$update[] = [
|
||||
'id' => $item['id'],
|
||||
'purchase' => min($product['purchase'], $item['price']),
|
||||
];
|
||||
}
|
||||
(new WarehouseProduct())->saveAll($update);
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user