瀏覽代碼

仓库每日发货统计

sunhao 5 年之前
父節點
當前提交
2f3b01498a

+ 17 - 0
app/Console/Commands/SyncMjOrderStatus.php

@@ -4,6 +4,8 @@ namespace App\Console\Commands;
4 4
 use Illuminate\Console\Command;
5 5
 use DB;
6 6
 use App\Order;
7
+use App\GoodsSkus;
8
+use App\OrderGoodsSkus;
7 9
 class SyncMjOrderStatus extends Command {
8 10
 
9 11
     protected $signature = 'SyncMjOrderStatus';
@@ -21,10 +23,12 @@ class SyncMjOrderStatus extends Command {
21 23
         $this->SyncMjOrderStatus();
22 24
     }
23 25
     public function SyncMjOrderStatus(){
26
+
24 27
         $orders = Order::select('id', 'outerCode')->where('orderCode','>',0)->where('status', '<', 3)->where('warehouse', 3)->orderBy('id', 'desc')->get();
25 28
         $orders = json_decode(json_encode($orders), true);
26 29
         foreach($orders as $k=>$order){
27 30
             $result = $this->getMjOrder($order['id'], $order['outerCode']);
31
+           
28 32
             if( !empty($result) ){
29 33
                 $data = array();
30 34
                 $status = $result['status'];
@@ -32,6 +36,19 @@ class SyncMjOrderStatus extends Command {
32 36
                     $data['status'] = 3;
33 37
                     $data['logistics_id'] = $result['expressCode'];
34 38
                     $data['send_time'] = date('Y-m-d');
39
+                    $data['cost'] = 0;
40
+                    #计算成本
41
+                    //if($sku_info->referenceCost) $cost += $sku_info->referenceCost * $gnum[$k];
42
+                    foreach($result['skuList'] as $key=>$sku){
43
+                        $skuCode = $sku['skuCode'];
44
+                        $code_arr = explode('|', $skuCode);
45
+                        $sku_id = $code_arr[1];
46
+                        $cost = GoodsSkus::where('id', $sku_id)->pluck('referenceCost'); //获取规格成本
47
+                        $quantity = $sku['quantity']; //对应规格数量
48
+                        $data['cost'] += $cost * $quantity; //对应规格总成本
49
+                        #更新order_sku
50
+                        OrderGoodsSkus::where('order_id', $order['id'])->where('sku_id', $sku_id)->update(['send_num'=>$quantity]);
51
+                    }
35 52
                     Order::where('id', $order['id'])->update($data);
36 53
                 }elseif($status == '已取消'){
37 54
                     $data['is_del'] = 1;

+ 1 - 6
app/Http/Controllers/Admin/OrderController.php

@@ -555,7 +555,6 @@ class OrderController extends Controller
555 555
         //商品信息
556 556
         $skus = $request->input('skus');
557 557
         $gnum = $request->input('gnum');
558
-        $cost = 0;
559 558
         if(!empty($skus)){
560 559
             foreach($skus as $k=>$sku_id){
561 560
                 $sku_info = GoodsSkus::where('id', $sku_id)->first();
@@ -570,7 +569,7 @@ class OrderController extends Controller
570 569
                 $params['propertiesName'] = $sku_info->propsName;
571 570
                 //$params['goodsName'] = '海钓黄翅鱼';//$goods->code; 
572 571
                 $params['price'] = $sku_info->price;
573
-                if($sku_info->referenceCost) $cost += $sku_info->referenceCost * $gnum[$k];
572
+                
574 573
                 $params['quantity'] = $gnum[$k];
575 574
                 $params['discountFee'] = 0;
576 575
                 $params['adjustFee'] = 0;
@@ -579,10 +578,6 @@ class OrderController extends Controller
579 578
             }
580 579
         }
581 580
 
582
-        if($cost>0){
583
-            $order['cost'] = $cost;
584
-        }
585
-
586 581
         //卖家云添加订单 ->改为审核通过再同步卖家云
587 582
         //$mj_add = Order::mjOrderAdd($order);
588 583
 

+ 86 - 0
app/Http/Controllers/Admin/StatisticsController.php

@@ -3793,6 +3793,92 @@ class StatisticsController extends Controller
3793 3793
         $filename = 'xiaoshouyuebao_'.date('Y-m-d_H').'.xlsx';
3794 3794
         return Order::export_excel($result, $filename, $indexKey, $title);
3795 3795
     }
3796
+
3797
+    /**
3798
+     * 仓库发货财务报表
3799
+     */
3800
+    public function warehouseFinanceList(Request $request){
3801
+        $warehouse = (int)$request->input('warehouse');
3802
+        $stime = $request->input('stime');
3803
+        $etime = $request->input('etime');
3804
+        $page = (int)$request->input('page');
3805
+        $pageSize = 20;
3806
+        if($page<=0){
3807
+            $page = 1;
3808
+        }
3809
+        $offset = ($page-1) * $pageSize;
3810
+
3811
+        $count =Order::select('warehouse')->where(function($query) use($stime, $etime, $warehouse){
3812
+            if($stime) $query->where('send_time', '>=', $stime);
3813
+            if($etime) $query->where('send_time', '<=', $etime);
3814
+            if($warehouse>0) $query->where('warehouse', '=', $warehouse);
3815
+        })->whereNotNull('send_time')->where('logistics_id','>','')->where('is_del', 0)->groupBy('warehouse')->groupBy('send_time')->get();      
3816
+        $count = count($count);
3817
+        if ($count > 1) {
3818
+            // 总页数
3819
+            $pages = ceil($count/$pageSize);
3820
+        }else{
3821
+            // 总页数
3822
+            $pages = 1;
3823
+        }
3824
+
3825
+
3826
+        $result = Order::select(DB::raw('send_time,warehouse,sum(cost) as goods_cost, sum(freight_cost) as freight_cost, count(1) as order_count'))->where(function($query) use($stime, $etime, $warehouse){
3827
+            if($stime) $query->where('send_time', '>=', $stime);
3828
+            if($etime) $query->where('send_time', '<=', $etime);
3829
+            if($warehouse>0) $query->where('warehouse', '=', $warehouse);
3830
+        })->whereNotNull('send_time')->where('logistics_id','>','')->where('is_del', 0)->groupBy('warehouse')->groupBy('send_time')->orderBy('send_time', 'desc')->offset($offset)->limit($pageSize)->get();
3831
+
3832
+        $wareArr = array(
3833
+            0 => '其他',
3834
+            1 => 'A仓',
3835
+            2 => 'B仓',
3836
+            3 => 'C仓',
3837
+        );
3838
+        foreach($result as $k=>&$item){
3839
+            $item->warehouse = $wareArr[$item->warehouse];
3840
+        }
3841
+
3842
+        return view('statistics/warehouseFinanceList', ['result'=>$result,
3843
+            'page'              =>$page,
3844
+            'count'             =>$count,
3845
+            'pages'             =>$pages,  
3846
+            'warehouse'         =>$warehouse,
3847
+            'stime'             =>$stime,  
3848
+            'etime'             =>$etime,  
3849
+        ]);
3850
+
3851
+    }   
3852
+    /**
3853
+     * 仓库发货财务报表导出
3854
+     */
3855
+    public function warehouseFinanceList_export(Request $request){
3856
+        $warehouse = (int)$request->input('warehouse');
3857
+        $stime = $request->input('stime');
3858
+        $etime = $request->input('etime');
3859
+       
3860
+        $result = Order::select(DB::raw('send_time,warehouse,sum(cost) as goods_cost, sum(freight_cost) as freight_cost, count(1) as order_count'))->where(function($query) use($stime, $etime, $warehouse){
3861
+            if($stime) $query->where('send_time', '>=', $stime);
3862
+            if($etime) $query->where('send_time', '<=', $etime);
3863
+            if($warehouse>0) $query->where('warehouse', '=', $warehouse);
3864
+        })->whereNotNull('send_time')->where('logistics_id','>','')->where('is_del', 0)->groupBy('warehouse')->groupBy('send_time')->orderBy('send_time', 'desc')->get();
3865
+
3866
+        $wareArr = array(
3867
+            0 => '其他',
3868
+            1 => 'A仓',
3869
+            2 => 'B仓',
3870
+            3 => 'C仓',
3871
+        );
3872
+        foreach($result as $k=>&$item){
3873
+            $item->warehouse = $wareArr[$item->warehouse];
3874
+        }
3875
+
3876
+        $indexKey = ['send_time','warehouse','order_count','goods_cost','freight_cost'];
3877
+        $title = ['日期', '仓库', '单数', '货品成本', '物流成本'];
3878
+        
3879
+        $filename = 'cangkufahuo_'.date('Y-m-d_H').'.xlsx';
3880
+        return Order::export_excel($result, $filename, $indexKey, $title);
3881
+    } 
3796 3882
                                                                                 
3797 3883
 }
3798 3884
   

+ 3 - 0
app/Http/routes.php

@@ -163,6 +163,9 @@ Route::group(['prefix' => 'admin'], function(){
163 163
         Route::get('/statistics/aftersaleFinanceList_export', 'Admin\StatisticsController@aftersaleFinanceList_export');
164 164
         Route::get('/statistics/refundFinanceList_export', 'Admin\StatisticsController@refundFinanceList_export');
165 165
         Route::get('/statistics/sendFinanceList_export', 'Admin\StatisticsController@sendFinanceList_export');
166
+        #仓库发货财务报表
167
+        Route::get('/statistics/warehouseFinanceList', 'Admin\StatisticsController@warehouseFinanceList');
168
+        Route::get('/statistics/warehouseFinanceList_export', 'Admin\StatisticsController@warehouseFinanceList_export');
166 169
         //销售业绩表
167 170
         Route::get('/statistics/salerBonus', 'Admin\StatisticsController@salerBonus');
168 171
         Route::get('/statistics/salerBonus_export', 'Admin\StatisticsController@salerBonus_export');

+ 3 - 0
resources/views/admin/index.blade.php

@@ -153,6 +153,9 @@
153 153
                     <ul>                       
154 154
                         <li @if(!isset($res['statistics/teamFinanceList'])) style="display:none;list-style-type:none;" @endif><a data-href="{{url('admin/statistics/sendFinanceList')}}" data-title="发货订单财务明细" href="javascript:void(0)">发货订单财务明细</a></li>                        
155 155
                     </ul>
156
+                    <ul>                       
157
+                        <li @if(!isset($res['statistics/teamFinanceList'])) style="display:none;list-style-type:none;" @endif><a data-href="{{url('admin/statistics/warehouseFinanceList')}}" data-title="仓库每日发货报表" href="javascript:void(0)">仓库每日发货财务统计</a></li>                        
158
+                    </ul>
156 159
                     
157 160
                 </dd>
158 161
             </dl>

+ 100 - 0
resources/views/statistics/warehouseFinanceList.blade.php

@@ -0,0 +1,100 @@
1
+@extends('admin/master')
2
+@section('content')
3
+    <body>
4
+    <div class="page-container">
5
+        <div>
6
+            <div>    
7
+                <input class="input-text" style="width:6%;text-align:center" type="text" value="所属仓库"/> 
8
+                <select style="width:10%;text-align:center" id='warehouse' name="warehouse">
9
+                    <option value="0" @if($warehouse==0) selected @endif>-- 选择仓库 --</option>
10
+                    <option value="1" @if($warehouse==1) selected @endif>A仓库</option>
11
+                    <option value="2" @if($warehouse==2) selected @endif>B仓库</option>
12
+                    <option value="3" @if($warehouse==3) selected @endif>C仓库</option>
13
+                    
14
+                </select>                          
15
+                <input class="input-text" style="width:6%;text-align:center" type="text" value="开始时间"/>
16
+                <input id="stime" type="text" onfocus="WdatePicker({ dateFmt:'yyyy-MM-dd' })" class="input-text Wdate" style="width:12%;text-align:center;margin-left: -5px" name="stime" value="{{$stime?$stime:''}}">
17
+                <input class="input-text" style="width:6%;text-align:center" type="text" value="结束时间"/>
18
+                <input id="etime"type="text" onfocus="WdatePicker({ dateFmt:'yyyy-MM-dd' })" class="input-text Wdate" style="width:12%;text-align:center;margin-left: -5px" name="etime" value="{{$etime?$etime:''}}">
19
+               
20
+                
21
+                <a class="btn btn-primary radius"  style="margin-left: 5px" onclick="user_search()" href="javascript:;">搜索</a>
22
+                <a class="btn btn-primary radius" onclick="statistics_export()" href="javascript:;"><i class="Hui-iconfont">&#xe600;</i> 导出数据</a>
23
+                
24
+            </div>
25
+        </div>
26
+        
27
+        <div class="mt-20">
28
+            <table class="table table-border table-bordered table-bg table-hover table-sort">
29
+                <thead>
30
+                <tr class="text-c">
31
+                    <th width="8%">日期</th>
32
+                    <th width="8%">仓库</th>
33
+                    <th width="8%">单数</th>                                 
34
+                    <th width="8%">货品成本</th>                                 
35
+                    <th width="8%">物流成本</th>                                                                                          
36
+                </tr>
37
+                </thead>
38
+                <tbody>
39
+                @if($result)
40
+                    @foreach($result as $a)
41
+                        <tr class="text-c" style=" text-align:center;">                           
42
+                            <td>{{$a['send_time']}}</td>                            
43
+                            <td>{{$a['warehouse']}}</td>                            
44
+                            <td>{{$a['order_count']}}</td>                            
45
+                            <td>{{$a['goods_cost']}}</td>                            
46
+                            <td>{{$a['freight_cost']}}</td>                                                 
47
+                        </tr>
48
+                    @endforeach
49
+                @endif
50
+                </tbody>
51
+            </table>
52
+        </div>
53
+        <div id="page" class="page_div"></div>
54
+    </div>
55
+    
56
+    <!--_footer 作为公共模版分离出去-->
57
+    <script type="text/javascript" src="/admin/lib/jquery/1.9.1/jquery.min.js"></script>
58
+    <script type="text/javascript" src="/admin/lib/layer/2.4/layer.js"></script>
59
+    <script type="text/javascript" src="/admin/static/h-ui/js/H-ui.min.js"></script>
60
+    <script type="text/javascript" src="/admin/static/h-ui.admin/js/H-ui.admin.js"></script>
61
+    <script type="text/javascript" src="/admin/lib/page/paging.js"></script>
62
+    <script type="text/javascript" src="/admin/lib/My97DatePicker/4.8/WdatePicker.js"></script>
63
+    <!--/_footer 作为公共模版分离出去-->
64
+    <!--/_footer 作为公共模版分离出去-->
65
+     <script type="text/javascript">
66
+     
67
+        function user_search(){
68
+            var stime = $('#stime').val();
69
+            var etime = $('#etime').val();
70
+            var warehouse = $('#warehouse').val();
71
+            //var page = {{$page}};
72
+            location.href = 'warehouseFinanceList?stime='+stime+'&etime='+etime+'&warehouse='+warehouse;
73
+        }
74
+        //导出
75
+        function statistics_export(){
76
+            var stime = $('#stime').val();
77
+            var etime = $('#etime').val();
78
+            var warehouse = $('#warehouse').val();
79
+            location.href = '/admin/statistics/warehouseFinanceList_export?stime='+stime+'&etime='+etime+'&warehouse='+warehouse;
80
+        }
81
+       
82
+        /*分页*/
83
+        
84
+        $("#page").paging({
85
+            pageNo:{{$page}},
86
+            totalPage: {{$pages}},
87
+            totalSize: {{$count}},
88
+            callback: function(num) {
89
+                var stime = $('#stime').val();
90
+                var etime = $('#etime').val();
91
+                var warehouse = $('#warehouse').val();
92
+                location.href='warehouseFinanceList?page='+num+'&stime='+stime+'&etime='+etime+'&warehouse='+warehouse;
93
+            }
94
+        })
95
+        
96
+    </script>
97
+   
98
+    </body>
99
+
100
+@endsection