|
@@ -100,6 +100,9 @@ public class SalesOrderController {
|
|
|
order.setUnReceivedPayment(price.subtract(order.getReceivedPayment()));
|
|
|
}else {
|
|
|
order.setUnReceivedPayment(order.getPrice());
|
|
|
+ order.setReceivedStatus(0);
|
|
|
+ //修改已退回金额为0 是否要删除所有回款数据
|
|
|
+ salesOrderPaymentService.remove(new LambdaQueryWrapper<SalesOrderPayment>().eq(SalesOrderPayment::getOrderId,order.getId()));
|
|
|
}
|
|
|
int countCode;
|
|
|
int countName;
|
|
@@ -410,6 +413,10 @@ public class SalesOrderController {
|
|
|
msg.setError("回款金额不能大于当前未回款金额");
|
|
|
return msg;
|
|
|
}
|
|
|
+ if(money>salesOrder.getPrice().doubleValue()){
|
|
|
+ msg.setError("回款金额不能大于订单金额");
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
List<SalesOrderPayment> list = salesOrderPaymentService.list(new LambdaQueryWrapper<SalesOrderPayment>().eq(SalesOrderPayment::getOrderId, orderId));
|
|
|
double sum = list.stream().mapToDouble(i -> i.getMoney().doubleValue()).sum();
|
|
|
if((sum+money)>salesOrder.getPrice().doubleValue()){
|
|
@@ -489,14 +496,27 @@ public class SalesOrderController {
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
|
SalesOrderPayment payment = salesOrderPaymentService.getById(paymentId);
|
|
|
SalesOrder salesOrder = salesOrderService.getById(payment.getOrderId());
|
|
|
- List<SalesOrderPayment> list = salesOrderPaymentService.list(new LambdaQueryWrapper<SalesOrderPayment>().eq(SalesOrderPayment::getOrderId, salesOrder.getId()).orderByDesc(SalesOrderPayment::getCreateTime));
|
|
|
+ List<SalesOrderPayment> list = salesOrderPaymentService.list(new LambdaQueryWrapper<SalesOrderPayment>().eq(SalesOrderPayment::getOrderId, salesOrder.getId()).orderByAsc(SalesOrderPayment::getCreateTime));
|
|
|
int i = list.indexOf(payment);
|
|
|
if(money!=null){
|
|
|
+// if(money>salesOrder.getUnReceivedPayment().doubleValue()){
|
|
|
+// msg.setError("回款金额不能大于当前未回款金额");
|
|
|
+// return msg;
|
|
|
+// }
|
|
|
+ if(money>salesOrder.getPrice().doubleValue()){
|
|
|
+ msg.setError("回款金额不能大于订单金额");
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
+ double sum = list.stream().mapToDouble(s -> s.getMoney().doubleValue()).sum();
|
|
|
+ if((sum)>salesOrder.getPrice().doubleValue()){
|
|
|
+ msg.setError("总回款金额不能大于订单金额");
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
//找到原回款数据
|
|
|
BigDecimal nowMoney = new BigDecimal(money);
|
|
|
BigDecimal oldMoney = payment.getMoney();
|
|
|
//离当前回款数据最近一次回款的未回款数据作为依据
|
|
|
- SalesOrderPayment salesOrderPayment =list.size()>1?list.get(i+1):list.get(i);
|
|
|
+ SalesOrderPayment salesOrderPayment =list.size()>1?list.get(i-1):list.get(i);
|
|
|
BigDecimal unReceivedPayment = salesOrderPayment.getUnReceivedPayment();
|
|
|
unReceivedPayment=unReceivedPayment.subtract(nowMoney);
|
|
|
payment.setMoney(new BigDecimal(money));
|