|
|
@@ -800,28 +800,6 @@ public class OrderServiceImpl implements OrderService {
|
|
|
throw new IllegalOperatorException("对应的店铺的信息不存在");
|
|
|
}
|
|
|
or.setStoreid(storeid);
|
|
|
- if (sysConf.getStoreid().equals(storeid)){ //如果是寄售类型的订单
|
|
|
- if (or.getInvoiceid() != null && or.getInvoicetype() == Type.Bill_NoDeduct.value()){ //发票为普票
|
|
|
- //将普票类型修改为专票
|
|
|
- List<Bill> billOne;
|
|
|
- if (SystemSession.getUser().getEnterprise() != null){
|
|
|
- billOne = billDao.getBillByUseruuAndEnuuAndKind(SystemSession.getUser().getUserUU(),
|
|
|
- SystemSession.getUser().getEnterprise().getUu(), Type.Bill_Deduct.value());
|
|
|
- }else {
|
|
|
- billOne = billDao.getBillByUseruuAndDissociativeAndKind(SystemSession.getUser().getUserUU(),
|
|
|
- Type.PERSONAL.value(), Type.Bill_Deduct.value());
|
|
|
- }
|
|
|
- if (CollectionUtils.isEmpty(billOne)){
|
|
|
- throw new IllegalOperatorException("对应专用发票信息不存在,请完善后重试");
|
|
|
- }else {
|
|
|
- Bill bill = billOne.get(0);
|
|
|
- or.setInvoicetype(Type.Bill_Deduct.value());
|
|
|
- or.setInvoiceid(bill.getId());
|
|
|
- or.setInvoicetitle(bill.getHead());
|
|
|
- or.setInvoiceAddress(FastjsonUtils.toJson(bill));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
or.setStoreName(storeIn.getStoreName());
|
|
|
or.setSellerenuu(storeIn.getEnUU());
|
|
|
Enterprise enterprise = enterpriseDao.findByUu(storeIn.getEnUU());
|
|
|
@@ -834,6 +812,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
or.setSellCompanyArea(enterprise.getEnArea());
|
|
|
or.setSellCompanyAddress(enterprise.getEnAddress());
|
|
|
or.setOrderDetails(newOrderDetails);
|
|
|
+ updateOrderBill(or);
|
|
|
or.setOrderid(createNumberService.generateOrderNumber(EncodingRulesConstant.ORDER, "trade$order", 8));
|
|
|
orders.add(or);
|
|
|
}
|
|
|
@@ -847,6 +826,45 @@ public class OrderServiceImpl implements OrderService {
|
|
|
return ResultMap.success(orderList);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 调整订单的发票类型
|
|
|
+ * 寄售类型,若选择普票(没有专票信息,修改为不开票。有则修改成专票)
|
|
|
+ * @param order
|
|
|
+ */
|
|
|
+ public void updateOrderBill(Order order){
|
|
|
+ if (sysConf.getStoreid().equals(order.getStoreid())){ //如果是寄售类型的订单
|
|
|
+ if (order.getInvoiceid() != null && order.getInvoicetype() == Type.Bill_NoDeduct.value()){ //发票为普票
|
|
|
+ //将普票类型修改为专票
|
|
|
+ List<Bill> billOne;
|
|
|
+ if (SystemSession.getUser().getEnterprise() != null){
|
|
|
+ billOne = billDao.getBillByUseruuAndEnuuAndKind(SystemSession.getUser().getUserUU(),
|
|
|
+ SystemSession.getUser().getEnterprise().getUu(), Type.Bill_Deduct.value());
|
|
|
+ }else {
|
|
|
+ billOne = billDao.getBillByUseruuAndDissociativeAndKind(SystemSession.getUser().getUserUU(),
|
|
|
+ Type.PERSONAL.value(), Type.Bill_Deduct.value());
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isEmpty(billOne)){
|
|
|
+ //没有专票信息,则修改成暂不开票
|
|
|
+ order.setInvoicetype(Type.Bill_No.value());
|
|
|
+ order.setInvoiceid(null);
|
|
|
+ order.setInvoicetitle(null);
|
|
|
+ order.setInvoiceAddress(null);
|
|
|
+ order.setVatBillStatus(Status.NEEDNO_BILL.value()); // 不需要开票
|
|
|
+ Set<OrderDetail> orderDetails = order.getOrderDetails();
|
|
|
+ for (OrderDetail orderDetail : orderDetails) {
|
|
|
+ orderDetail.setBillStatus(Status.NEEDNO_BILL.value());
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ Bill bill = billOne.get(0);
|
|
|
+ order.setInvoicetype(Type.Bill_Deduct.value());
|
|
|
+ order.setInvoiceid(bill.getId());
|
|
|
+ order.setInvoicetitle(bill.getHead());
|
|
|
+ order.setInvoiceAddress(FastjsonUtils.toJson(bill));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* <h1>将orderInfos的信息封装进Order的List集合中,便于操作。</h1>
|
|
|
*
|