Browse Source

【发票管理】-- 订单转为“待发货”状态时,自动添加发票申请

wangyc 8 years ago
parent
commit
eef3e96095

+ 9 - 0
src/main/java/com/uas/platform/b2c/fa/settlement/service/BillSubmitService.java

@@ -1,6 +1,7 @@
 package com.uas.platform.b2c.fa.settlement.service;
 
 import com.uas.platform.b2c.fa.settlement.model.BillSubmit;
+import com.uas.platform.b2c.trade.order.model.Order;
 import com.uas.platform.core.model.PageInfo;
 import org.springframework.data.domain.Page;
 
@@ -37,4 +38,12 @@ public interface BillSubmitService {
      * @return
      */
     List<BillSubmit> auditBillSubmit(String ids);
+
+
+    /**
+     * 管理平台确认收款新增发票申请
+     * @param order 订单信息
+     * @return
+     */
+    BillSubmit saveByAdmin(Order order);
 }

+ 38 - 1
src/main/java/com/uas/platform/b2c/fa/settlement/service/impl/BillSubmitServiceImpl.java

@@ -107,7 +107,7 @@ public class BillSubmitServiceImpl implements BillSubmitService {
         return billSubmitDao.save(billSubmits);
     }
 
-    // 初始化发票申请
+    // 初始化发票申请(用户发起用)
     public BillSubmit createBillSubmit(Bill bill, List<Order> orders, Long buyerEnuu) {
         Long buyeruu = SystemSession.getUser().getUserUU();
         // 发票基本信息
@@ -156,6 +156,43 @@ public class BillSubmitServiceImpl implements BillSubmitService {
         return billSubmit;
     }
 
+    @Override
+    public BillSubmit saveByAdmin(Order order) {
+        Bill bill = billDao.findOne(order.getInvoiceid());
+        if (bill == null) {
+            throw new IllegalOperatorException("买家选择需要开票,但发票信息不存在,请重新确认");
+        }
+
+        // 发票基本信息
+        BillSubmit billSubmit = new BillSubmit();
+        billSubmit.setInvoicetitle(bill.getHead());
+        billSubmit.setInvoiceid(bill.getId());
+        billSubmit.setInvoiceAddress(bill.getArea() + "," + bill.getDetailAddress());
+        billSubmit.setInvoicetype(bill.getKind());
+        billSubmit.setCreateTime(new Date());
+        billSubmit.setReceiverName(bill.getName());
+        billSubmit.setRecTel(bill.getTelephone());
+        billSubmit.setStatus(Status.SUBMITTED.value());
+        billSubmit.setSubmituu(order.getBuyeruu());
+        if (order.getBuyerenuu() != null)
+            billSubmit.setSubmitEnuu(order.getBuyerenuu());
+
+        billSubmit.setSellername(order.getSellername());
+        billSubmit.setSellerenuu(order.getSellerenuu());
+
+        order.setInvoicetype(bill.getKind());
+        order.setInvoiceAddress(bill.getArea() + "," + bill.getDetailAddress());
+        order.setInvoiceid(bill.getId());
+        order.setInvoicetitle(bill.getHead());
+        order.setVatBillStatus(Status.TOBEMAKE_BILL.value());
+        orderDao.save(order);
+
+        billSubmit.setPrice(order.getPrice());
+        billSubmit.setOrderids(order.getOrderid());
+
+        return billSubmitDao.save(billSubmit);
+    }
+
     @Override
     public Page<BillSubmit> getAll(final PageInfo pageInfo, String keyword, String invoicetype , String status, String role) {
         if (Type.BUYER.name().equals(role)) {

+ 9 - 0
src/main/java/com/uas/platform/b2c/trade/order/service/impl/OrderServiceImpl.java

@@ -29,6 +29,7 @@ import com.uas.platform.b2c.fa.settlement.dao.BillDao;
 import com.uas.platform.b2c.fa.settlement.dao.BillInfoDao;
 import com.uas.platform.b2c.fa.settlement.model.Bill;
 import com.uas.platform.b2c.fa.settlement.model.BillInfo;
+import com.uas.platform.b2c.fa.settlement.service.BillSubmitService;
 import com.uas.platform.b2c.logistics.dao.AddressDao;
 import com.uas.platform.b2c.logistics.dao.InvoiceFOrderDao;
 import com.uas.platform.b2c.logistics.dao.InvoiceFPurchaseDao;
@@ -193,6 +194,8 @@ public class OrderServiceImpl implements OrderService {
     private InstallmentDao installmentDao;
     @Autowired
     private InstallmentDetailDao installmentDetailDao;
+    @Autowired
+    private BillSubmitService billSubmitService;
 
     /**
      * 保存订单信息
@@ -1431,6 +1434,12 @@ public class OrderServiceImpl implements OrderService {
                 }
                 purchase.setSendstatus(Status.NOT_UPLOAD.value());
                 purchaseDao.save(purchase);
+
+                // 如果买家需要开发票,则生成发票申请
+                if (Type.Bill_No.value() != newOrder.getInvoicetype().intValue()) {
+                    billSubmitService.saveByAdmin(newOrder);
+                }
+
                 //发送短信,异常不作处理
                 try {
                     sendMessage(purchase);

+ 7 - 0
src/main/java/com/uas/platform/b2c/trade/order/service/impl/PurchaseServiceImpl.java

@@ -24,6 +24,7 @@ import com.uas.platform.b2c.fa.settlement.dao.BillDao;
 import com.uas.platform.b2c.fa.settlement.dao.BillInfoDao;
 import com.uas.platform.b2c.fa.settlement.model.Bill;
 import com.uas.platform.b2c.fa.settlement.model.BillInfo;
+import com.uas.platform.b2c.fa.settlement.service.BillSubmitService;
 import com.uas.platform.b2c.logistics.dao.*;
 import com.uas.platform.b2c.logistics.model.*;
 import com.uas.platform.b2c.logistics.service.InvoiceFPurchaseService;
@@ -152,6 +153,8 @@ public class PurchaseServiceImpl implements PurchaseService {
     private InstallmentDetailDao installmentDetailDao;
 	@Autowired
 	private InstallmentService installmentService;
+	@Autowired
+	private BillSubmitService billSubmitService;
 
 	@Override
 	public Purchase save(Purchase purchase) {
@@ -708,6 +711,10 @@ public class PurchaseServiceImpl implements PurchaseService {
         if (statusList.contains(purchase.getStatus())) {
             if (isReceived) {
                 purchase.setStatusComfirmed(userUU);
+				// 如果买家需要开发票,则生成发票申请
+				if (Type.Bill_No.value() != newOrder.getInvoicetype().intValue()) {
+					billSubmitService.saveByAdmin(newOrder);
+				}
             } else {
                 purchase.setStatusToBePaidAgain(userUU);
             }