Browse Source

买家中心-发票管理-未开票 开票申请功能

yangc 8 years ago
parent
commit
ee0c9a1801

+ 9 - 1
src/main/webapp/resources/js/common/query/bill.js

@@ -33,12 +33,20 @@ define([ 'ngResource' ], function() {
 				method : 'DELETE'
 			},
 			getPersonalSpecial : {
-				url : 'trade/bill//personal',
+				url : 'trade/bill/personal',
 				method : 'GET',
 				params : {
 					'type' : 'special'
 				}
 			}
 		});
+	}]).factory('BillSubmit', ['$resource', function($resource) {
+			//获取ComponentSubmit的分页数据
+		return $resource('trade/billSubmit', {}, {
+			submitBillApply : {
+				url : ' trade/billSubmit',
+				method : 'POST'
+			}
+		});
 	}]);
 });

+ 6 - 2
src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_invoice_ctrl.js

@@ -111,8 +111,8 @@ define(['app/app'], function(app) {
             var doSave = function (message) {
                 $scope.bill.area = $scope.bill.address.province + "," + $scope.bill.address.city + "," + $scope.bill.address.district;
                 var file = null;
-                if($scope.bill.billInfo&&$scope.bill.billInfo[0]) {
-                    file = $scope.bill.billInfo[0];
+                if($scope.bill.permission&&$scope.bill.permission[0]) {
+                    file = $scope.bill.permission[0];
                 }
                 $upload.upload({
                     url: 'trade/bill/save',
@@ -130,6 +130,10 @@ define(['app/app'], function(app) {
                 });
             }
 
+            $scope.onPermissionUpload = function () {
+                console.log(1)
+            }
+
 
         //设置新增栏目切换发票类型
         $scope.billType = 1206

+ 211 - 4
src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_no_invoice_ctrl.js

@@ -1,13 +1,220 @@
 define([ 'app/app' ], function(app) {
     'use strict';
-    app.register.controller('NoInvoiceCtrl', ['$scope','$rootScope','$modal', function ($scope, $rootScope, $modal) {
+    app.register.controller('NoInvoiceCtrl', ['$scope','$rootScope','$modal', 'Order', 'toaster','ngTableParams','BaseService','Bill', function ($scope, $rootScope, $modal, Order, toaster, ngTableParams, BaseService, Bill) {
         $scope.tab = 'buyer_no_invoice';
+
+    //    $scope.applyItem = []
+
         // 开票申请
         $scope.applyInvoice = function () {
-            $modal.open({
-                templateUrl : $rootScope.rootPath + '/static/view/usercenter/modal/apply-invoice.html',
-                size : 'lg'
+            var applyItem = []
+            angular.forEach($scope.orderData, function (item) {
+                if (item.checked) {
+                    applyItem.push(item)
+                }
             })
+      //      console.log(applyItem)
+            if (applyItem.length > 0) {
+                if ($scope.invoices.length > 0) {
+                    $modal.open({
+                        templateUrl : $rootScope.rootPath + '/static/view/usercenter/modal/apply-invoice.html',
+                        size : 'lg',
+                        controller : 'NoInvoiceSubmitCtrl',
+                        resolve : {
+                            submitInvoice : function () {
+                                return applyItem;
+                            },
+                            invoiceData: function () {
+                                return $scope.invoices
+                            }
+                        }
+                    })
+                } else {
+                    toaster.pop('error','请前往开票信息页面新增发票')
+                }
+            } else {
+                toaster.pop('error','请勾选未开票订单')
+            }
         };
+        var initDataRule = function () {
+            $scope.param = {};
+            $scope.pageparam = {};
+            $scope.keyword = '';
+            $scope.status = 520;
+            $scope.pageparam.page = 1;
+            $scope.pageparam.count = 10;
+            $scope.pageparam.sorting = {creattime : "DESC"};
+
+            $scope.param.pageParams = $scope.pageparam;
+            $scope.param.keyword = $scope.keyword;
+            $scope.param.status = $scope.status
+
+            Bill.getListPersonal(null, function(data) {
+                $scope.invoices = data;
+            }, function(error) {
+                toaster.pop('error', '获取发票信息失败');
+            });
+        }
+        initDataRule();
+
+        // var loadOrderData = function () {
+        //     Order.getOrderOnBillByPersonal($scope.param, {}, function (data) {
+        //         $scope.orderData = data
+        //     }, function (error) {
+        //         toaster.pop('error', '获取未开票订单信息失败')
+        //     });
+        // };
+        // 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', '获取未开票订单信息失败');
+                });
+            }
+        });
+
+        //全选状态
+        $scope.isAllCheck = false
+        //全选
+        $scope.onAllChecked = function () {
+            if (!$scope.isAllCheck) {
+                angular.forEach($scope.orderData, function (item, index) {
+                    item.checked = true
+                })
+            } else {
+                angular.forEach($scope.orderData, function (item, index) {
+                    item.checked = false
+                })
+            }
+            $scope.isAllCheck = !$scope.isAllCheck
+        }
+
+
+        //单选
+        $scope.checkInvoice = function (item) {
+            var temAllCheck = true
+            item.checked = !item.checked
+            angular.forEach($scope.orderData, function (itemss) {
+                if (!itemss.checked) {
+                    temAllCheck = false
+                }
+            })
+            $scope.isAllCheck = temAllCheck
+        }
+
+    }]);
+    app.register.controller('NoInvoiceSubmitCtrl', ['$scope','$rootScope','$modal', 'Order', 'toaster', 'submitInvoice', '$modalInstance','invoiceData','BillSubmit', function ($scope, $rootScope, $modal, Order, toaster, submitInvoice, $modalInstance, invoiceData, BillSubmit) {
+        //公司列表
+        $scope.submitInvoice = []
+
+        //订单数
+        $scope.orderCount = submitInvoice.length || 0
+
+        //总金额
+        $scope.allPrice = 0
+
+        //发票信息
+        $scope.invoiceData = {}
+
+        // 数据处理
+        $scope.dealData = function () {
+            var submitItem = submitInvoice
+            var temStoreIdArr = []
+            var tmpPriceArr = []
+            angular.forEach(submitItem, function (item) {
+                var index = temStoreIdArr.indexOf(item.storeid)
+                if (index == -1) {
+                    temStoreIdArr.push(item.storeid)
+                    tmpPriceArr.push({price: item.price, storeName: item.storeName, orderid: item.orderid})
+                } else {
+                    tmpPriceArr[index].price += item.price
+                }
+            })
+            angular.forEach(tmpPriceArr, function (item, index) {
+                $scope.submitInvoice.push(tmpPriceArr[index])
+                $scope.allPrice += tmpPriceArr[index].price
+            })
+        }
+        $scope.dealData()
+
+        $scope.hasSpecial = false
+        $scope.hasNormal = false
+
+        $scope.getInvoiceData = function (invoiceKind) {
+            var tmpInvoice = invoiceData
+            if (!invoiceKind) {
+                if (tmpInvoice.length == 1) {
+                    $scope.invoiceData = tmpInvoice[0]
+                    if (tmpInvoice[0].kind == 1205) {
+                        $scope.hasSpecial = true
+                    } else if (tmpInvoice[0].kind == 1206) {
+                        $scope.hasNormal = true
+                    }
+                } else if (tmpInvoice.length > 1) {
+                    $scope.getInvoiceData(1206)
+                }
+            } else {
+                angular.forEach(tmpInvoice, function (item) {
+                    if (item.kind == 1205) {
+                        $scope.hasSpecial = true
+                    }
+
+                    if (item.kind == 1206) {
+                        $scope.hasNormal = true
+                    }
+
+                    if (item.kind == invoiceKind) {
+                        $scope.invoiceData = item
+                    }
+                })
+            }
+      //      console.log($scope.invoiceData)
+       //     return {}
+        }
+
+        $scope.getInvoiceData()
+
+        //关闭模态框
+        $scope.closeModal = function () {
+            $modalInstance.dismiss()
+        }
+
+        //提交申请
+        $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) {
+                toaster.pop('error', '申请发票失败')
+            })
+        }
+
     }]);
 });

+ 2 - 2
src/main/webapp/resources/view/usercenter/forstore/buyer_invoice.html

@@ -451,9 +451,9 @@
                     <div class="form-group"  ng-if="billType == 1205">
                         <label class="col-md-2 control-label"><b class="text-inverse">*</b>上传开户许可证:</label>
                         <div class="col-md-6">
-                            <input type="text" class="form-control" ng-model="bill.bankAccount" name="account" ng-pattern="/^[0-9]*$/" required ng-minlength="8" ng-maxlength="30">
+                            <input type="file" ng-file-select class="form-control" ng-model="bill.permission" name="permission" ng-change="onPermissionUpload()" ng-multiple="false" accept="image/gif,image/jpeg,image/jpg,image/png,image/svg,application/pdf,*.pdf" required>
                         </div>
-                        <div class="text-inverse error col-md-3" ng-show="(bill.bankAccount||form.account.$touched)&&(form.account.$invalid)">请勿超过3M</div>
+                        <div class="text-inverse error col-md-3" ng-show="(bill.permission||form.permission.$touched)&&(form.permission.$invalid)">请勿超过3M</div>
                     </div>
                     <div class="form-group">
                         <label class="col-md-2 control-label"><b class="text-inverse">*</b>收票人:</label>

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

@@ -114,6 +114,38 @@
     background: #5078cb;
     border: none;
 }
+.invoice-search{
+    width: 100%;
+    margin: 0 auto;
+    background: #f5f8fe;
+    height: 40px;
+    margin-top: 5px;
+}
+.invoice-search div.fr{
+    width: 388px;
+    margin-top: 3px;
+    margin-right: 14px;
+}
+.invoice-search input.form-control{
+    width: 330px;
+    height: 32px;
+    line-height: 58px;
+    font-size: 12px;
+    border-radius: 0;
+    border: #5078cb 1px solid;
+    background: #fff;
+    float: left;
+}
+.invoice-search button{
+    border: none;
+    width: 58px;
+    height: 32px;
+    background: #5078cb;
+    text-align: center;
+    font-size: 14px;
+    color: #fff;
+    float: right;
+}
 </style>
 <!--右侧主体部分-->
 <div class="user_right fr u_c_invoice">
@@ -135,13 +167,19 @@
                 <p>3、发票金额为产品总金额且不含运费、积分、优惠券、促销折扣等金额 ;</p>
                 <p>4、发票邮寄费用将由卖家承担。</p>
             </div>
+            <div class="invoice-search">
+                <div class="fr">
+                    <input type="text" class="form-control" placeholder="商家名称/订单号"/>
+                    <button>搜索</button>
+                </div>
+            </div>
             <div class="no-invoice-content">
-                <table class="invoice-com-tab table">
+                <table class="invoice-com-tab table" ng-table="orderBillTableParam">
                     <thead>
                         <tr>
                             <th width="80">
                                 <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>
@@ -151,31 +189,20 @@
                         </tr>
                     </thead>
                     <tbody>
-                        <tr>
-                            <td>
-                                <lable class="check-act">
-                                    <input type="checkbox" id="1" />
-                                    <label for="1"></label>
-                                </lable>
-                            </td>
-                            <td>深圳市优软商城科技有限公司</td>
-                            <td>131364634534</td>
-                            <td>131313</td>
-                        </tr>
-                        <tr>
+                        <tr ng-repeat="item in orderData track by $index">
                             <td>
                                 <lable class="check-act">
-                                    <input type="checkbox" id="2" />
-                                    <label for="2"></label>
+                                    <input type="checkbox" id={{$index+1}} ng-checked="item.checked" ng-click="checkInvoice(item)" />
+                                    <label for={{$index+1}}></label>
                                 </lable>
                             </td>
-                            <td>深圳市优软商城科技有限公司</td>
-                            <td>131364634534</td>
-                            <td>131313</td>
+                            <td ng-bind="item.storeName"></td>
+                            <td ng-bind="item.orderid"></td>
+                            <td ng-bind="item.price"></td>
                         </tr>
                         <tr class="record-num">
                             <td colspan="4">
-                                <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" style="color: #5078cb;"></span> 条</span>
                             </td>
                         </tr>
                     </tbody>

+ 26 - 50
src/main/webapp/resources/view/usercenter/modal/apply-invoice.html

@@ -144,94 +144,70 @@
 </style>
 <div class="modal-body">
     <div class="apply-content">
-        <div class="head">申请开票<a ng-click="">&times;</a></div>
+        <div class="head">申请开票<a ng-click="closeModal()">&times;</a></div>
         <div class="table">
-            <div class="row">
-                <div class="col-md-8">深圳市哈哈哈有限公司</div>
-                <div class="col-md-4">金额: <em>¥223569</em> </div>
-            </div>
-            <div class="row">
-                <div class="col-md-8">深圳市优软商城科技有限公司</div>
-                <div class="col-md-4">金额: <em>¥223569</em> </div>
-            </div>
-            <div class="row">
-                <div class="col-md-8">深圳市优软商城科技有限公司</div>
-                <div class="col-md-4">金额: <em>¥223569</em> </div>
-            </div>
-            <div class="row">
-                <div class="col-md-8">深圳市优软商城科技有限公司</div>
-                <div class="col-md-4">金额: <em>¥223569</em> </div>
-            </div>
-            <div class="row">
-                <div class="col-md-8">深圳市优软商城科技有限公司</div>
-                <div class="col-md-4">金额: <em>¥223569</em> </div>
-            </div>
-            <div class="row">
-                <div class="col-md-8">深圳市哈哈哈有限公司</div>
-                <div class="col-md-4">金额: <em>¥223569</em> </div>
+            <div class="row" ng-repeat="item in submitInvoice">
+                <div class="col-md-8" ng-bind="item.storeName"></div>
+                <div class="col-md-4">金额: <em>¥<span ng-bind="item.price"></span></em> </div>
             </div>
         </div>
-        <div class="count">共<em class="blue">5</em>个商家,<em class="blue">15</em>个订单,发票金额总计:<em class="red">¥5689</em>元</div>
+        <div class="count">共<em class="blue" ng-bind="submitInvoice.length"></em>个商家,<em class="blue" ng-bind="orderCount"></em>个订单,发票金额总计:<em class="red">¥<span ng-bind="allPrice"></span></em>元</div>
         <div class="apply-list">
             <div class="row">
                 <div class="col-md-4">发票类型</div>
                 <div class="col-md-8">
-                    <label class="check-act">
-                        <input type="radio" name="1" id="1206"/>
+                    <label class="check-act" style="margin-right: 35px;" ng-show="hasNormal">
+                        <input type="radio" name="1" id="1206" ng-checked="invoiceData.kind == 1206" ng-click="getInvoiceData(1206)"/>
                         <label for="1206"></label>
                         增值税普票(不可抵扣)
                     </label>
-                    <label class="check-act" style="margin-left: 35px;">
-                        <input type="radio" name="1" id="1207"/>
-                        <label for="1207"></label>
+                    <label class="check-act" ng-show="hasSpecial">
+                        <input type="radio" name="1" id="1205" ng-checked="invoiceData.kind == 1205" ng-click="getInvoiceData(1205)"/>
+                        <label for="1205"></label>
                         增值税专票(可抵扣)
                     </label>
                 </div>
             </div>
             <div class="row">
                 <div class="col-md-4">发票抬头</div>
-                <div class="col-md-8">深圳优软科技</div>
+                <div class="col-md-8" ng-bind="invoiceData.head"></div>
             </div>
-            <div class="row">
-                <div class="col-md-4">发票抬头</div>
-                <div class="col-md-8">深圳优软科技</div>
-            </div>
-            <div class="row">
+            <div class="row" ng-if="invoiceData.kind == 1205">
                 <div class="col-md-4">单位地址</div>
-                <div class="col-md-8">科技园科技五路5号英唐大厦6楼</div>
+                <div class="col-md-8" ng-bind="invoiceData.companyAddress"></div>
             </div>
-            <div class="row">
+            <div class="row" ng-if="invoiceData.kind == 1205">
                 <div class="col-md-4">单位电话</div>
-                <div class="col-md-8">0755-56626666</div>
+                <div class="col-md-8" ng-bind="invoiceData.companyPhone"></div>
             </div>
-            <div class="row">
+            <div class="row" ng-if="invoiceData.kind == 1205">
                 <div class="col-md-4">税务登记号</div>
-                <div class="col-md-8">2346463263653</div>
+                <div class="col-md-8" ng-bind="invoiceData.companyTaxNumber"></div>
             </div>
-            <div class="row">
+            <div class="row" ng-if="invoiceData.kind == 1205">
                 <div class="col-md-4">开户银行</div>
-                <div class="col-md-8">招商银行南山支行</div>
+                <div class="col-md-8" ng-bind="invoiceData.bankName"></div>
             </div>
-            <div class="row">
+            <div class="row" ng-if="invoiceData.kind == 1205">
                 <div class="col-md-4">开户银行账户</div>
-                <div class="col-md-8">4564634131313</div>
+                <div class="col-md-8" ng-bind="invoiceData.bankAccount"></div>
             </div>
             <div class="row">
                 <div class="col-md-4">收票人</div>
-                <div class="col-md-8">哈哈哈</div>
+                <div class="col-md-8" ng-bind="invoiceData.name"></div>
             </div>
             <div class="row">
                 <div class="col-md-4">联系电话</div>
-                <div class="col-md-8">4564634131313</div>
+                <div class="col-md-8" ng-bind="invoiceData.telephone"></div>
             </div>
             <div class="row">
                 <div class="col-md-4">收票地址</div>
-                <div class="col-md-8">广东省&nbsp;&nbsp;深圳市&nbsp;&nbsp;南山区&nbsp;&nbsp;科技园科技五路5号英唐大厦6楼</div>
+                <div class="col-md-8" ng-bind="invoiceData.area"></div>
             </div>
         </div>
         <div class="deal-btn">
-            <a ng-click="" class="off">取消</a>
-            <a href="" class="ok">确认</a>
+            <a ng-click="closeModal()" class="off">取消</a>
+            <a ng-click="apply()" class="ok">确认</a>
         </div>
     </div>
 </div>

+ 6 - 0
src/main/webapp/resources/view/vendor/forstore/vendor-invoice.html

@@ -255,6 +255,12 @@
             <p>2、发票金额为产品总金额且不含运费、积分、优惠券、促销折扣等金额。</p>
             <p>3、发票邮寄费用将有卖家承担。</p>
         </div>
+        <div class="invoice-search">
+            <div class="fr">
+                <input type="text" class="form-control" placeholder="商家名称/订单号/发票抬头/收票人/联系电话"/>
+                <button>搜索</button>
+            </div>
+        </div>
         <div class="vendor-invoice-content">
             <table class="invoice-com-tab table">
                 <thead>