lisai17@sina.com 2020-10-12 21:49:35 +08:00
parent 368c0dce7f
commit 1351b0f357
2 changed files with 54 additions and 45 deletions

View File

@ -106,9 +106,9 @@ public class OrderTempController extends BaseController {
String invoice_code = get("invoice_code"); String invoice_code = get("invoice_code");
String memo = get("memo"); String memo = get("memo");
String printer = get("printer", Enums.PrinterIdEnum.printer1.name()); String printer = get("printer", Enums.PrinterIdEnum.printer1.name());
int req_receipt = getInt("req_receipt", 0); // 是否需要发票0 默认不需要1需要 // int req_receipt = getInt("req_receipt", 0); // 是否需要发票0 默认不需要1需要
renderJson(OrderTempSyncService.me.payordercluster(uuid, transport_id, ordercluster_id, invoice_number, invoice_code, memo, printer, tokenuser, req_receipt)); renderJson(OrderTempSyncService.me.payordercluster(uuid, transport_id, ordercluster_id, invoice_number, invoice_code, memo, printer, tokenuser));
} }
@Before(OrderTempPrepayValidator.class) @Before(OrderTempPrepayValidator.class)

View File

@ -224,8 +224,7 @@ public class OrderTempSyncService {
String invoice_code, String invoice_code,
String memo, String memo,
String printerId, String printerId,
Sysuser sysuser, Sysuser sysuser
int req_receipt
) { ) {
OrderTemp order = new OrderTemp(); OrderTemp order = new OrderTemp();
@ -259,11 +258,6 @@ public class OrderTempSyncService {
return Result.failedstr("毛重 %.2f 吨,不能超过 %s 吨", transport.getSecondWeight(), Config.configprop.getInt("weigh.max")); return Result.failedstr("毛重 %.2f 吨,不能超过 %s 吨", transport.getSecondWeight(), Config.configprop.getInt("weigh.max"));
} }
InvoiceReceive receive = InvoiceReceiveService.me.checkReceive(transport.getSupermarketId(), invoice_number, invoice_code);
if (receive == null) {
return Result.failed("没有有效的发票领用记录,或者发票已经被使用");
}
BigDecimal net_weight = transport.getSecondWeight().subtract(transport.getFirstWeight()); // 销售的用第二次减第一次 BigDecimal net_weight = transport.getSecondWeight().subtract(transport.getFirstWeight()); // 销售的用第二次减第一次
OrderclusterTruck ot = OrderclusterTruck.dao.findFirst("select * from ordercluster_truck t \n" + OrderclusterTruck ot = OrderclusterTruck.dao.findFirst("select * from ordercluster_truck t \n" +
@ -302,13 +296,26 @@ public class OrderTempSyncService {
return Result.failedstr("未查到有效的单价信息"); return Result.failedstr("未查到有效的单价信息");
} }
Date now = new Date(); InvoiceReceive receive = null;
SyncTask synctask = new SyncTask();
// 零散客户需要开具发票的,需要检查是否有有效的领用记录
if (ordercluster.getReqReceipt() == 1) {
receive = InvoiceReceiveService.me.checkReceive(transport.getSupermarketId(), invoice_number, invoice_code);
if (receive == null) {
return Result.failed("没有有效的发票领用记录,或者发票已经被使用");
}
// if (req_receipt == 1) { // 需要同时开具发票
order.setInvoiceCode(invoice_code); order.setInvoiceCode(invoice_code);
order.setInvoiceNumber(invoice_number); order.setInvoiceNumber(invoice_number);
// }
order.setInvoiceType(1); // 需要开发票的,都是冠名发票
} else {
order.setInvoiceType(2); // 不需要开发票的,都是要专票的
}
Date now = new Date();
SyncTask synctask = new SyncTask();
order.setTransportId(transport.getId()); order.setTransportId(transport.getId());
order.setSupermarketId(transport.getSupermarketId()); order.setSupermarketId(transport.getSupermarketId());
@ -381,6 +388,7 @@ public class OrderTempSyncService {
transport.setArriveTime(now); transport.setArriveTime(now);
transport.setType(OrderTypeEnum.TEMP.getTypeid()); transport.setType(OrderTypeEnum.TEMP.getTypeid());
InvoiceReceive finalReceive = receive;
boolean ret = Db.tx(new IAtom() { boolean ret = Db.tx(new IAtom() {
@Override @Override
public boolean run() { public boolean run() {
@ -420,12 +428,12 @@ public class OrderTempSyncService {
return false; return false;
} }
// if (req_receipt == 1) { // 需要同时开具发票 if (ordercluster.getReqReceipt() == 1) { // 需要同时开具发票
// 这里的 finalReceive 在前面肯定验证过了 // 这里的 finalReceive 在前面肯定验证过了
receive.setSurplus(receive.getSurplus() - 1); finalReceive.setSurplus(finalReceive.getSurplus() - 1);
receive.setCurrentCode(invoice_code); finalReceive.setCurrentCode(invoice_code);
ret = receive.update(); ret = finalReceive.update();
if (!ret) { if (!ret) {
log.error("发票领用信息更新失败", invoice_code); log.error("发票领用信息更新失败", invoice_code);
@ -434,7 +442,7 @@ public class OrderTempSyncService {
InvoiceLog invoiceLog = new InvoiceLog(); InvoiceLog invoiceLog = new InvoiceLog();
invoiceLog.setId(StrKit.getRandomUUID()); invoiceLog.setId(StrKit.getRandomUUID());
invoiceLog.setInvoiceReceiveId(receive.getId()); invoiceLog.setInvoiceReceiveId(finalReceive.getId());
invoiceLog.setCode(invoice_code); invoiceLog.setCode(invoice_code);
invoiceLog.setInvoiceNumber(invoice_number); invoiceLog.setInvoiceNumber(invoice_number);
invoiceLog.setState(OrderStateEnum.RECEIVED.getStateid()); invoiceLog.setState(OrderStateEnum.RECEIVED.getStateid());
@ -451,8 +459,8 @@ public class OrderTempSyncService {
} }
synctask.addSaveData(invoiceLog); synctask.addSaveData(invoiceLog);
synctask.addUpdateData(receive); synctask.addUpdateData(finalReceive);
// } }
// 在这里更新sn字段之后存入 // 在这里更新sn字段之后存入
synctask.addSaveData(order); synctask.addSaveData(order);
@ -573,7 +581,8 @@ public class OrderTempSyncService {
InvoiceReceive receive = null; InvoiceReceive receive = null;
// 2020-09-29 需要开具专票的,先开具结算单,不打发票 // 2020-09-29 需要开具专票的,先开具结算单,不打发票
if (CliCacheData.SUP.getInvoiceType() == 2 && customer.getInvoiceType() == 2) { // 2020-10-12 所有超市都可以开结算单
if ( customer.getInvoiceType() == 2) {
order.setInvoiceType(2); order.setInvoiceType(2);
// 需要专票的,在结算开了专票之后,再修改 invoice_site 字段 // 需要专票的,在结算开了专票之后,再修改 invoice_site 字段
} else { } else {