Browse Source

买卖家发票管理

yangc 8 years ago
parent
commit
f9b14e28dd

+ 2 - 1
src/main/java/com/uas/platform/b2c/trade/order/controller/OrderController.java

@@ -670,7 +670,8 @@ public class OrderController {
 	public Page<Order> getBillByStatusByPersonal(PageParams params, String keyword, int status) {
 		PageInfo pageInfo = new PageInfo(params);
 		pageInfo.filter("buyeruu", SystemSession.getUser().getUserUU());
-		pageInfo.filter("buyerenuu", SystemSession.getUser().getEnterprise().getUu());
+		if (SystemSession.getUser().getEnterprise() != null)
+			pageInfo.filter("buyerenuu", SystemSession.getUser().getEnterprise().getUu());
 		assert logger != null;
 		logger.log("买家订单管理", "买家获取买家订单信息", "获取待开发票的订单");
 		return orderService.getBillByStatus(pageInfo, keyword, status);

+ 10 - 0
src/main/webapp/resources/js/common/query/bill.js

@@ -46,7 +46,17 @@ define([ 'ngResource' ], function() {
 			submitBillApply : {
 				url : ' trade/billSubmit',
 				method : 'POST'
+			},
+			getSubmitBillApply : {
+				url : ' trade/billSubmit',
+				method : 'GET'
+			},
+			sureBillApply : {
+				url : 'trade/billSubmit/:ids',
+				method : 'PUT',
+				isArray : 'true'
 			}
+
 		});
 	}]);
 });

+ 48 - 1
src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_invoice_record_ctrl.js

@@ -1,7 +1,54 @@
 define([ 'app/app' ], function(app) {
     'use strict';
-    app.register.controller('buyerInvoiceRecordCtrl', ['$scope','$rootScope','$modal', function ($scope, $rootScope, $modal) {
+    app.register.controller('buyerInvoiceRecordCtrl', ['$scope','$rootScope','$modal','BillSubmit','BaseService', 'toaster','ngTableParams', function ($scope, $rootScope, $modal, BillSubmit, BaseService, toaster, ngTableParams) {
         $scope.tab = 'buyer_invoice-record';
         // 开票申请
+
+        var initDataRule = function () {
+            $scope.param = {};
+            $scope.pageparam = {};
+            $scope.keyword = '';
+            $scope.role = 'BUYER';
+            $scope.pageparam.page = 1;
+            $scope.pageparam.count = 10;
+            $scope.pageparam.sorting = {createTime : "DESC"};
+
+            $scope.param.pageParams = $scope.pageparam;
+            $scope.param.keyword = $scope.keyword;
+            $scope.param.role = $scope.role
+        }
+        initDataRule();
+
+        $scope.$$kdnData = {};
+        var initTable = function () {
+            $scope.billRecordTableParam = new ngTableParams($scope.param,{
+                total : 0,
+                getData : function ($defer, params) {
+                    var param = BaseService.parseParams(params.url());
+                    param.pageParams.sorting = {creattime : "DESC"};
+                    BillSubmit.getSubmitBillApply(param, function (page) {
+                        $scope.$$kdnData.totalElements = page.totalElements;
+                        if(Number(page.totalElements) > 0) {
+                            $scope.$$kdnData.start = Number(page.size) * (Number(page.number) - 1) + 1;
+                        }else {
+                            $scope.$$kdnData.start = 0;
+                        }
+                        $scope.$$kdnData.end = Number(page.size) * (Number(page.number) - 1) + Number(page.numberOfElements);
+                        params.total(page.totalElements);
+                        $defer.resolve(page.content);
+                        //划分数据
+                        $scope.billData = page.content;
+                    }, function () {
+                        toaster.pop('error', '获取开票记录失败');
+                    });
+                }
+            });
+        };
+        initTable();
+        
+        $scope.searchByKey = function () {
+            $scope.param.keyword = $scope.keyword
+            initTable();
+        }
     }]);
 });

+ 50 - 37
src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_no_invoice_ctrl.js

@@ -37,17 +37,23 @@ define([ 'app/app' ], function(app) {
             }
         };
         var initDataRule = function () {
-            $scope.param = {};
-            $scope.pageparam = {};
+            $scope.param = {
+                page : 1,
+                count : 10,
+                status : 520,
+                sorting: {creattime : "DESC"},
+                keyword : ''
+            };
+     //       $scope.pageparam = {};
             $scope.keyword = '';
-            $scope.status = 520;
-            $scope.pageparam.page = 1;
-            $scope.pageparam.count = 10;
-            $scope.pageparam.sorting = {creattime : "DESC"};
+            // $scope.status = 520;
+            // $scope.pageparam.page = 1;
+            // $scope.pageparam.count = 10;
+            // $scope.pageparam.sorting = {createTime : "DESC"};
 
-            $scope.param.pageParams = $scope.pageparam;
-            $scope.param.keyword = $scope.keyword;
-            $scope.param.status = $scope.status
+            // $scope.param.pageParams = $scope.pageparam;
+            // $scope.param.keyword = $scope.keyword;
+            // $scope.param.status = $scope.status
 
             Bill.getListPersonal(null, function(data) {
                 $scope.invoices = data;
@@ -67,32 +73,41 @@ define([ 'app/app' ], function(app) {
         // loadOrderData();
         $scope.$$kdnData = {};
 
-        $scope.orderBillTableParam = new ngTableParams($scope.param,{
-            total : 0,
-            getData : function ($defer, params) {
-                var param = BaseService.parseParams(params.url());
-                param.pageParams.sorting = {creattime : "DESC"};
-                Order.getOrderOnBillByPersonal(param, function (page) {
-                    $scope.$$kdnData.totalElements = page.totalElements;
-                    if(Number(page.totalElements) > 0) {
-                        $scope.$$kdnData.start = Number(page.size) * (Number(page.number) - 1) + 1;
-                    }else {
-                        $scope.$$kdnData.start = 0;
-                    }
-                    $scope.$$kdnData.end = Number(page.size) * (Number(page.number) - 1) + Number(page.numberOfElements);
-                    params.total(page.totalElements);
-                    $defer.resolve(page.content);
-                    //划分数据
-                    $scope.orderData = page.content;
-                    //初始化选中状态
-                    angular.forEach($scope.orderData, function (item) {
-                        item.checked = false
-                    })
-                }, function () {
-                    toaster.pop('error', '获取未开票订单信息失败');
-                });
-            }
-        });
+        var initTable = function () {
+            $scope.orderBillTableParam = new ngTableParams($scope.param,{
+                total : 0,
+                getData : function ($defer, params) {
+                    var param = BaseService.parseParams(params.url());
+                    // param.pageParams.sorting = {creattime : "DESC"};
+                    param.keyword = $scope.keyword;
+                    Order.getOrderOnBillByPersonal(param, function (page) {
+                        $scope.$$kdnData.totalElements = page.totalElements;
+                        if(Number(page.totalElements) > 0) {
+                            $scope.$$kdnData.start = Number(page.size) * (Number(page.number) - 1) + 1;
+                        }else {
+                            $scope.$$kdnData.start = 0;
+                        }
+                        $scope.$$kdnData.end = Number(page.size) * (Number(page.number) - 1) + Number(page.numberOfElements);
+                        params.total(page.totalElements);
+                        $defer.resolve(page.content);
+                        //划分数据
+                        $scope.orderData = page.content;
+                        //初始化选中状态
+                        angular.forEach($scope.orderData, function (item) {
+                            item.checked = false
+                        })
+                    }, function () {
+                        toaster.pop('error', '获取未开票订单信息失败');
+                    });
+                }
+            });
+        };
+        initTable();
+
+        $scope.searchByKeyword = function () {
+            $scope.param.keyword = $scope.keyword
+            initTable();
+        }
 
         //全选状态
         $scope.isAllCheck = false
@@ -204,11 +219,9 @@ define([ 'app/app' ], function(app) {
         $scope.apply = function () {
             var orderids = ''
             angular.forEach($scope.submitInvoice, function (item) {
-                console.log(item)
                 orderids += item.orderid + ','
             })
             orderids = orderids.substring(0, orderids.length-1)
-            console.log(orderids)
             BillSubmit.submitBillApply(null, {orderids: orderids, invoiceid: $scope.invoiceData.id}, function (data) {
                 toaster.pop('success', '申请发票成功')
             },function (error) {

+ 127 - 1
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_invoice_ctrl.js

@@ -1,11 +1,137 @@
 define([ 'app/app' ], function(app) {
     'use strict';
-    app.register.controller('vendorInvoiceCtrl', ['$scope','$rootScope','$modal', function ($scope, $rootScope, $modal) {
+    app.register.controller('vendorInvoiceCtrl', ['$scope','$rootScope','$modal','BillSubmit','BaseService', 'toaster','ngTableParams', function ($scope, $rootScope, $modal, BillSubmit, BaseService, toaster, ngTableParams) {
         $rootScope.active = 'vendor_invoice';
         // 切换tab
         $scope.active = 'apply_invoice';
         $scope.toggleTab = function (t) {
+            $scope.keyword = '';
+            if (t=='apply_invoice') {
+                initDataRule(101);
+            } else {
+                initDataRule(102);
+            }
             $scope.active = t;
         };
+
+        var initDataRule = function (stateNum) {
+            $scope.param = {};
+            $scope.pageparam = {};
+            $scope.keyword = '';
+            $scope.role = 'SELLER';
+            $scope.status = stateNum;
+            $scope.pageparam.page = 1;
+            $scope.pageparam.count = 10;
+            $scope.pageparam.sorting = {createTime : "DESC"};
+
+            $scope.param.pageParams = $scope.pageparam;
+            $scope.param.keyword = $scope.keyword;
+            $scope.param.role = $scope.role;
+            $scope.param.status = $scope.status;
+        }
+        initDataRule(101);
+
+        $scope.$$kdnData = {};
+        var initTable = function () {
+            $scope.billRecordTableParam = new ngTableParams($scope.param,{
+                total : 0,
+                getData : function ($defer, params) {
+                    var param = BaseService.parseParams(params.url());
+                    param.pageParams.sorting = {creattime : "DESC"};
+                    BillSubmit.getSubmitBillApply(param, function (page) {
+                        $scope.$$kdnData.totalElements = page.totalElements;
+                        if(Number(page.totalElements) > 0) {
+                            $scope.$$kdnData.start = Number(page.size) * (Number(page.number) - 1) + 1;
+                        }else {
+                            $scope.$$kdnData.start = 0;
+                        }
+                        $scope.$$kdnData.end = Number(page.size) * (Number(page.number) - 1) + Number(page.numberOfElements);
+                        params.total(page.totalElements);
+                        $defer.resolve(page.content);
+                        //划分数据
+                        $scope.billData = page.content;
+                        //初始化选中状态和地址信息
+                        angular.forEach($scope.billData, function (item) {
+                            var temAddr = item.invoiceAddress.split(',')
+                            item.detailAddr = temAddr[3]
+                            item.area = temAddr[0]+'  '+temAddr[1]+'  '+temAddr[2]
+                            item.checked = false
+                        })
+                    }, function () {
+                        toaster.pop('error', '获取开票记录失败');
+                    });
+                }
+            });
+        };
+        initTable();
+
+        $scope.searchByKey = function () {
+            $scope.param.keyword = $scope.keyword
+            initTable();
+        }
+
+        //全选状态
+        $scope.isAllCheck = false
+        //全选
+        $scope.onAllChecked = function () {
+            if (!$scope.isAllCheck) {
+                angular.forEach($scope.billData, function (item, index) {
+                    item.checked = true
+                })
+            } else {
+                angular.forEach($scope.billData, function (item, index) {
+                    item.checked = false
+                })
+            }
+            $scope.isAllCheck = !$scope.isAllCheck
+        }
+
+
+        //单选
+        $scope.checkInvoice = function (item) {
+            var temAllCheck = true
+            item.checked = !item.checked
+            angular.forEach($scope.billData, function (itemss) {
+                if (!itemss.checked) {
+                    temAllCheck = false
+                }
+            })
+            $scope.isAllCheck = temAllCheck
+        }
+
+        //提交申请
+        $scope.submitApply = function () {
+            var flag = false;
+            angular.forEach($scope.billData, function (item) {
+                if (item.checked) {
+                    flag = true;
+                }
+            });
+            if (flag) {
+                $scope.setShowSubmitBox(true);
+            } else {
+                toaster.pop('error','请先勾选开票申请');
+            }
+        }
+        
+        $scope.setShowSubmitBox = function (flag) {
+            $scope.showSubmitBox = flag;
+        }
+
+        //确认提交
+        $scope.doSubmit = function () {
+            var tmpIds = '';
+            angular.forEach($scope.billData, function (item) {
+                if (item.checked) {
+                    tmpIds += item.invoiceid + ',';
+                }
+            });
+            tmpIds = tmpIds.substring(0, tmpIds.length-1)
+            BillSubmit.sureBillApply({id: tmpIds}, null, function (data) {
+            },function (error) {
+                toaster.pop('error','提交失败');
+            })
+        }
+
     }]);
 });

+ 14 - 29
src/main/webapp/resources/view/usercenter/forstore/buyer_invoice_record.html

@@ -130,12 +130,12 @@
         <div class="invoice-record">
             <div class="invoice-search">
                 <div class="fr">
-                    <input type="text" class="form-control" placeholder="商家名称/订单号/发票抬头/收票人/联系电话"/>
-                    <button>搜索</button>
+                    <input type="text" class="form-control" ng-model="keyword" placeholder="商家名称/订单号/发票抬头/收票人/联系电话"/>
+                    <button ng-click="searchByKey()">搜索</button>
                 </div>
             </div>
             <div class="invoice-record-content">
-                <table class="invoice-com-tab table">
+                <table class="invoice-com-tab table" ng-table="billRecordTableParam">
                     <thead>
                         <tr>
                             <th width="80">申请时间</th>
@@ -162,37 +162,22 @@
                         </tr>
                     </thead>
                     <tbody>
-                        <tr>
-                            <td>2017-08-28</td>
-                            <td>深圳市优软商城科技</td>
-                            <td>131364634534</td>
-                            <td>131313</td>
-                            <td>普票</td>
-                            <td>深圳市优软商城</td>
-                            <td>哈哈哈</td>
-                            <td>13135015772</td>
-                            <td>
-                                <span class="blue">待开票</span>
-                                <!--<span>已开票</span>-->
-                            </td>
-                        </tr>
-                        <tr>
-                            <td>2017-08-28</td>
-                            <td>深圳市优软商城科技</td>
-                            <td>131364634534</td>
-                            <td>131313</td>
-                            <td>普票</td>
-                            <td>深圳市优软商城</td>
-                            <td>哈哈哈</td>
-                            <td>13135015772</td>
+                        <tr ng-repeat="item in billData">
+                            <td ng-bind="item.createTime | date : 'yyyy-MM-dd'"></td>
+                            <td ng-bind="item.sellername"></td>
+                            <td ng-bind="item.orderids"></td>
+                            <td ng-bind="item.price"></td>
+                            <td ng-bind="item.invoicetype==1206?'普票':'专票'"></td>
+                            <td ng-bind="item.invoicetitle"></td>
+                            <td ng-bind="item.receiverName"></td>
+                            <td ng-bind="item.recTel"></td>
                             <td>
-                                <!--<span class="blue">待开票</span>-->
-                                <span>已开票</span>
+                                <span ng-bind="item.status==101?'待开票':'已开票'" ng-class="{'blue':item.status==101}"></span>
                             </td>
                         </tr>
                         <tr class="record-num">
                             <td colspan="10">
-                                <span class="count-tip">显示 1-<span>10</span> 条,共 <em>2506</em> 条</span>
+                                <span class="count-tip">显示 <span ng-bind="$$kdnData.start"></span>-<span ng-bind="$$kdnData.end"></span> 条,共 <span ng-bind="$$kdnData.totalElements"></span> 条</span>
                             </td>
                         </tr>
                     </tbody>

+ 3 - 3
src/main/webapp/resources/view/usercenter/forstore/buyer_no_invoice.html

@@ -169,8 +169,8 @@
             </div>
             <div class="invoice-search">
                 <div class="fr">
-                    <input type="text" class="form-control" placeholder="商家名称/订单号"/>
-                    <button>搜索</button>
+                    <input type="text" class="form-control" ng-model="keyword" placeholder="商家名称/订单号"/>
+                    <button ng-click="searchByKeyword()">搜索</button>
                 </div>
             </div>
             <div class="no-invoice-content">
@@ -202,7 +202,7 @@
                         </tr>
                         <tr class="record-num">
                             <td colspan="4">
-                                <span class="count-tip">显示 <span ng-bind="$$kdnData.start"></span>-<span ng-bind="$$kdnData.end"></span> 条,共 <span ng-bind="$$kdnData.totalElements" style="color: #5078cb;"></span> 条</span>
+                                <span class="count-tip">显示 <span ng-bind="$$kdnData.start"></span>-<span ng-bind="$$kdnData.end"></span> 条,共 <span ng-bind="$$kdnData.totalElements"></span> 条</span>
                             </td>
                         </tr>
                     </tbody>

+ 22 - 41
src/main/webapp/resources/view/vendor/forstore/vendor-invoice.html

@@ -257,17 +257,17 @@
         </div>
         <div class="invoice-search">
             <div class="fr">
-                <input type="text" class="form-control" placeholder="商家名称/订单号/发票抬头/收票人/联系电话"/>
-                <button>搜索</button>
+                <input type="text" class="form-control" ng-model="keyword" placeholder="商家名称/订单号/发票抬头/收票人/联系电话"/>
+                <button ng-click="searchByKey">搜索</button>
             </div>
         </div>
         <div class="vendor-invoice-content">
-            <table class="invoice-com-tab table">
+            <table class="invoice-com-tab table" ng-table="billRecordTableParam">
                 <thead>
                 <tr>
                     <th width="45">
                         <lable class="check-act">
-                            <input type="checkbox" id="checkAll" />
+                            <input type="checkbox" id="checkAll" ng-click="onAllChecked()" ng-checked="isAllCheck" />
                             <label for="checkAll"></label>
                         </lable>
                         全选</th>
@@ -288,47 +288,28 @@
                 </tr>
                 </thead>
                 <tbody>
-                    <tr>
-                        <td>
-                            <lable class="check-act">
-                                <input type="checkbox" id="1" />
-                                <label for="1"></label>
-                            </lable>
-                        </td>
-                        <td>2017-08-28</td>
-                        <td>131364634534</td>
-                        <td>131313</td>
-                        <td>普票</td>
-                        <td>深圳市优软商城科技技</td>
-                        <td>哦哦哦</td>
-                        <td class="address">
-                            <p>广东省&nbsp;&nbsp;深圳市&nbsp;&nbsp;南山区</p>
-                            <p>科技园科技五路5号英唐大厦6楼</p>
-                        </td>
-                        <td>13135015772</td>
-                    </tr>
-                    <tr>
+                    <tr ng-repeat="item in billData track by $index">
                         <td>
                             <lable class="check-act">
-                                <input type="checkbox" id="1" />
-                                <label for="1"></label>
+                                <input type="checkbox" id={{$index+1}} ng-checked="item.checked" ng-click="checkInvoice(item)" />
+                                <label for={{$index+1}}></label>
                             </lable>
                         </td>
-                        <td>2017-08-28</td>
-                        <td>131364634534</td>
-                        <td>131313</td>
-                        <td>普票</td>
-                        <td>深圳市优软商城科技技</td>
-                        <td>哦哦哦</td>
+                        <td ng-bind="item.createTime | date : 'yyyy-MM-dd'"></td>
+                        <td ng-bind="item.orderids"></td>
+                        <td ng-bind="item.price"></td>
+                        <td ng-bind="item.invoicetype==1206?'普票':'专票'"></td>
+                        <td ng-bind="item.invoicetitle"></td>
+                        <td ng-bind="item.receiverName"></td>
                         <td class="address">
-                            <p>广东省&nbsp;&nbsp;深圳市&nbsp;&nbsp;南山区</p>
-                            <p>科技园科技五路5号英唐大厦6楼</p>
+                            <p ng-bind="item.area"></p>
+                            <p ng-bind="item.detailAddr"></p>
                         </td>
-                        <td>13135015772</td>
+                        <td ng-bind="item.recTel">13135015772</td>
                     </tr>
                     <tr class="record-num">
                         <td colspan="9">
-                            <span class="count-tip">显示 1-<span>10</span> 条,共<em> 2506 </em>条</span>
+                            <span class="count-tip">显示 <span ng-bind="$$kdnData.start"></span>-<span ng-bind="$$kdnData.end"></span> 条,共 <span ng-bind="$$kdnData.totalElements"></span> 条</span>
                         </td>
                     </tr>
                 </tbody>
@@ -340,15 +321,15 @@
             </table>
         </div>
         <div class="apply-btn">
-            <button ng-click="">确认开票</button>
+            <button ng-click="submitApply()">确认开票</button>
         </div>
     </div>
     <!--开票记录-->
     <div class="vendor-invoice" ng-if="active == 'apply_record'">
         <div class="invoice-search">
             <div class="fr">
-                <input type="text" class="form-control" placeholder="商家名称/订单号/发票抬头/收票人/联系电话"/>
-                <button>搜索</button>
+                <input type="text" ng-model="keyword" class="form-control" placeholder="商家名称/订单号/发票抬头/收票人/联系电话"/>
+                <button ng-click="searchByKey">搜索</button>
             </div>
         </div>
         <div class="vendor-invoice-content">
@@ -415,13 +396,13 @@
 </div>
 
 <!--操作框-->
-<div class="com-del-box" style="display: none;">
+<div class="com-del-box" ng-show="showSubmitBox">
     <div class="title">
         <a ng-click=""><i class="fa fa-close fa-lg"></i></a>
     </div>
     <div class="content">
         <p><i class="fa fa-exclamation-circle"></i>点击【确认】系统将通知买家发票
             <br/>已寄出,否则请点击【取消】</p>
-        <div><a ng-click="">取消</a><a ng-click="">确认</a></div>
+        <div><a ng-click="setShowSubmitBox(false)">取消</a><a ng-click="doSubmit()">确认</a></div>
     </div>
 </div>