| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | |
| | | import com.ruoyi.sales.dto.InvoiceRegistrationProductDto; |
| | | import com.ruoyi.sales.dto.SalesLedgerDto; |
| | | import com.ruoyi.sales.excel.InvoiceRegisAndProductExcelDto; |
| | | import com.ruoyi.sales.mapper.*; |
| | | import com.ruoyi.sales.mapper.InvoiceLedgerMapper; |
| | | import com.ruoyi.sales.mapper.InvoiceRegistrationMapper; |
| | | import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper; |
| | | import com.ruoyi.sales.mapper.SalesLedgerProductMapper; |
| | | import com.ruoyi.sales.pojo.InvoiceLedger; |
| | | import com.ruoyi.sales.pojo.InvoiceRegistration; |
| | | import com.ruoyi.sales.pojo.InvoiceRegistrationProduct; |
| | |
| | | throw new RuntimeException("销售台账产品不存在,ID:" + productDatum.getId()); |
| | | } |
| | | |
| | | // 计算累计开票 |
| | | BigDecimal newInvoiceNum = dbProduct.getInvoiceNum().add(currentInvoiceNum); |
| | | // 未开票 |
| | | BigDecimal noInvoiceAmount = dbProduct.getNoInvoiceAmount(); |
| | | BigDecimal noInvoiceNum = dbProduct.getNoInvoiceNum(); |
| | | |
| | | BigDecimal newInvoiceAmount = dbProduct.getInvoiceAmount().add(currentInvoiceAmount); |
| | | // 剩余未开票 |
| | | BigDecimal newNoInvoiceNum = noInvoiceNum.subtract(currentInvoiceNum); |
| | | BigDecimal newNoInvoiceAmount = noInvoiceAmount.subtract(currentInvoiceAmount); |
| | | |
| | | // 计算未开票 |
| | | BigDecimal newNoInvoiceNum = dbProduct.getQuantity().subtract(newInvoiceNum); |
| | | |
| | | BigDecimal newNoInvoiceAmount = dbProduct.getTaxInclusiveTotalPrice().subtract(newInvoiceAmount); |
| | | |
| | | if (newNoInvoiceNum.compareTo(BigDecimal.ZERO) < 0 |
| | | || newNoInvoiceAmount.compareTo(BigDecimal.ZERO) < 0) { |
| | | if (newNoInvoiceAmount.compareTo(BigDecimal.ZERO) < 0) { |
| | | throw new RuntimeException("开票数量或金额超过合同总量"); |
| | | } |
| | | |
| | |
| | | null, |
| | | new LambdaUpdateWrapper<SalesLedgerProduct>() |
| | | .eq(SalesLedgerProduct::getId, dbProduct.getId()) |
| | | .set(SalesLedgerProduct::getInvoiceNum, newInvoiceNum) |
| | | .set(SalesLedgerProduct::getInvoiceAmount, newInvoiceAmount) |
| | | .set(SalesLedgerProduct::getNoInvoiceNum, newNoInvoiceNum) |
| | | .set(SalesLedgerProduct::getNoInvoiceAmount, newNoInvoiceAmount) |
| | | ); |