Commit 8f45981c by liuyang

2024-07-08 修复采购收票选结算单bug

parent 47381568
......@@ -77,7 +77,7 @@
SUP_CODE = #supCode#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="supName">
SUP_NAME = #supName#
SUP_NAME like concat('%',#supName#,'%')
</isNotEmpty>
<isNotEmpty prepend=" AND " property="purUserId">
PUR_USER_ID = #purUserId#
......@@ -109,6 +109,12 @@
<isNotEmpty prepend=" AND " property="inventTypeDetails">
INVENT_TYPE_DETAIL IN <iterate close=")" open="(" conjunction="," property="inventTypeDetails">#inventTypeDetails[]#</iterate>
</isNotEmpty>
<isNotEmpty prepend=" AND " property="signingDateFrom">
RECEIVE_DATE >= #signingDateFrom#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="signingDateTo">
RECEIVE_DATE &lt;= #signingDateTo#
</isNotEmpty>
</sql>
<sql id="idCondition">
......
......@@ -148,7 +148,7 @@ public class ServiceHGCW012 extends ServiceBase {
return inInfo;
}
@OperationLogAnnotation(operModul = "采购收票",operType = "插入",operDesc = "生成采购收票")
@OperationLogAnnotation(operModul = "采购收票",operType = "插入",operDesc = "生成采购收票劳务合同")
public EiInfo select(EiInfo inInfo) {
try {
List<Map> resultRows = inInfo.getBlock("resultA").getRows();
......@@ -169,7 +169,8 @@ public class ServiceHGCW012 extends ServiceBase {
hgcw012.setCompanyName(userVO.getUsername());
hgcw012.setReviewStatus(0);
hgcw012.setBillState(1);
hgcw012.setSigningDate(DateUtils.shortDate());
//hgcw012.setSigningDate(DateUtils.shortDate());
hgcw012.setReceiveDate(DateUtils.shortDate());
BigDecimal totalContractPriceIncluding = BigDecimal.ZERO;
StringBuffer settlementNumber = new StringBuffer();
Map<String, BigDecimal> rowMap = new HashMap<>();
......@@ -244,7 +245,7 @@ public class ServiceHGCW012 extends ServiceBase {
}
return inInfo;
}
@OperationLogAnnotation(operModul = "采购收票",operType = "插入",operDesc = "生成采购收票")
public EiInfo selecta(EiInfo inInfo) {
try {
List<Map> resultRows = inInfo.getBlock("result").getRows();
......@@ -265,7 +266,9 @@ public class ServiceHGCW012 extends ServiceBase {
hgcw012.setCompanyName(userVO.getUsername());
hgcw012.setReviewStatus(0);
hgcw012.setBillState(1);
hgcw012.setSigningDate(DateUtils.shortDate());
hgcw012.setBillTybe(1);
//hgcw012.setSigningDate(DateUtils.shortDate());
hgcw012.setReceiveDate(DateUtils.shortDate());
BigDecimal totalContractPriceIncluding = BigDecimal.ZERO;
StringBuffer settlementNumber = new StringBuffer();
Map<String, BigDecimal> rowMap = new HashMap<>();
......@@ -332,6 +335,7 @@ public class ServiceHGCW012 extends ServiceBase {
}
return inInfo;
}
@OperationLogAnnotation(operModul = "采购收票",operType = "插入",operDesc = "生成租赁合同")
public EiInfo selectb(EiInfo inInfo) {
try {
List<Map> resultRows = inInfo.getBlock("resultB").getRows();
......@@ -352,7 +356,9 @@ public class ServiceHGCW012 extends ServiceBase {
hgcw012.setCompanyName(userVO.getUsername());
hgcw012.setReviewStatus(0);
hgcw012.setBillState(1);
hgcw012.setSigningDate(DateUtils.shortDate());
hgcw012.setBillTybe(1);
//hgcw012.setSigningDate(DateUtils.shortDate());
hgcw012.setReceiveDate(DateUtils.shortDate());
BigDecimal totalContractPriceIncluding = BigDecimal.ZERO;
StringBuffer settlementNumber = new StringBuffer();
Map<String, BigDecimal> rowMap = new HashMap<>();
......@@ -378,7 +384,9 @@ public class ServiceHGCW012 extends ServiceBase {
//生成明细表
for (HGCW013 hgcw013 : hgcw013List) {
hgcw013.setMainId(hgcw012.getId());
HGCWTools.HgCw006.deductionAmount(hgcw013.getSettlementNumber(),rowMap.get(hgcw013.getSettlementNumber()));
hgcw013.setId(null);
this.addHGCW013(hgcw013);
}
} else {
HGCW012 hgcw012 = HGCWTools.HgCw012.getId(mainId);
......@@ -393,7 +401,7 @@ public class ServiceHGCW012 extends ServiceBase {
for (HGCW013 hgcw013 : hgcw013List) {
hgcw013.setMainId(hgcw012.getId());
// 反写金额
HGCWTools.HgCw008.deductionAmount(hgcw013.getSettlementNumber(),rowMap.get(hgcw013.getSettlementNumber()));
HGCWTools.HgCw006.deductionAmount(hgcw013.getSettlementNumber(),rowMap.get(hgcw013.getSettlementNumber()));
this.addHGCW013(hgcw013);
}
List<HGCW013> hgcw013s = HGCWTools.HgCw013.getMainId(hgcw012.getId());
......
package com.baosight.hggp.hg.cw.service;
import com.baosight.bpm.util.StringUtil;
import com.baosight.hggp.aspect.annotation.OperationLogAnnotation;
import com.baosight.hggp.hg.cg.domain.HGCG003;
import com.baosight.hggp.hg.cw.domain.*;
import com.baosight.hggp.util.DateUtils;
import com.baosight.hggp.util.LogUtils;
import com.baosight.hggp.util.StringUtils;
import com.baosight.hggp.util.contants.ACConstants;
import com.baosight.iplat4j.core.ei.EiConstant;
import com.baosight.iplat4j.core.ei.EiInfo;
......@@ -44,6 +47,14 @@ public class ServiceHGCW012A extends ServiceBase {
@Override
public EiInfo query(EiInfo inInfo) {
try {
String signingDateFrom = inInfo.getCellStr(EiConstant.queryBlock, ACConstants.ROW_CODE_0, "signingDateFrom");
String signingDateTo = inInfo.getCellStr(EiConstant.queryBlock, ACConstants.ROW_CODE_0, "signingDateTo");
if (!signingDateFrom.isEmpty()){
inInfo.setCell(EiConstant.queryBlock, ACConstants.ROW_CODE_0,"signingDateFrom", DateUtils.formatShort(signingDateFrom));
}
if (!signingDateTo.isEmpty()){
inInfo.setCell(EiConstant.queryBlock, ACConstants.ROW_CODE_0,"signingDateTo", DateUtils.formatShort(signingDateTo));
}
inInfo = super.query(inInfo, HGCG003.QUERY, new HGCG003());
} catch (Exception e) {
LogUtils.setDetailMsg(inInfo, e, "查询失败");
......@@ -54,7 +65,16 @@ public class ServiceHGCW012A extends ServiceBase {
@OperationLogAnnotation(operModul = "采购开票",operType = "查询",operDesc = "查询劳务")
public EiInfo queryA(EiInfo inInfo) {
try {
String signingDateFrom = inInfo.getCellStr(EiConstant.queryBlock, ACConstants.ROW_CODE_0, "signingDateFrom");
String signingDateTo = inInfo.getCellStr(EiConstant.queryBlock, ACConstants.ROW_CODE_0, "signingDateTo");
if (!signingDateFrom.isEmpty()){
inInfo.setCell(EiConstant.queryBlock, ACConstants.ROW_CODE_0,"signingDateFrom", DateUtils.formatShort(signingDateFrom));
}
if (!signingDateTo.isEmpty()){
inInfo.setCell(EiConstant.queryBlock, ACConstants.ROW_CODE_0,"signingDateTo", DateUtils.formatShort(signingDateTo));
}
inInfo.setCell(EiConstant.queryBlock, ACConstants.ROW_CODE_0,HGCW002.FIELD_CONTRACT_TYPE, 2);
inInfo.setCell(EiConstant.queryBlock, ACConstants.ROW_CODE_0, HGCW006.FIELD_REMAINING_AMOUNT, 0);
inInfo = super.query(inInfo, HGCW012A.QUERY, new HGCW012A(),false,new HGCW012A().eiMetadata,EiConstant.queryBlock,"resultA","resultA");
} catch (Exception e) {
LogUtils.setDetailMsg(inInfo, e, "查询失败");
......@@ -65,7 +85,15 @@ public class ServiceHGCW012A extends ServiceBase {
@OperationLogAnnotation(operModul = "采购开票",operType = "查询",operDesc = "查询租赁")
public EiInfo queryB(EiInfo inInfo) {
try {
inInfo.setCell(EiConstant.queryBlock, ACConstants.ROW_CODE_0, HGCW002.FIELD_CONTRACT_TYPE, 2);
String signingDateFrom = inInfo.getCellStr(EiConstant.queryBlock, ACConstants.ROW_CODE_0, "signingDateFrom");
String signingDateTo = inInfo.getCellStr(EiConstant.queryBlock, ACConstants.ROW_CODE_0, "signingDateTo");
if (!signingDateFrom.isEmpty()){
inInfo.setCell(EiConstant.queryBlock, ACConstants.ROW_CODE_0,"signingDateFrom", DateUtils.formatShort(signingDateFrom));
}
if (!signingDateTo.isEmpty()){
inInfo.setCell(EiConstant.queryBlock, ACConstants.ROW_CODE_0,"signingDateTo", DateUtils.formatShort(signingDateTo));
}
inInfo.setCell(EiConstant.queryBlock, ACConstants.ROW_CODE_0, HGCW006.FIELD_REMAINING_AMOUNT, 0);
inInfo = super.query(inInfo, HGCW006.QUERY, new HGCW006(), false, new HGCW006().eiMetadata, EiConstant.queryBlock, "resultB", "resultB");
} catch (Exception e) {
LogUtils.setDetailMsg(inInfo, e, "查询失败");
......
......@@ -144,6 +144,18 @@
<isNotEmpty prepend=" AND " property="companyCodes">
COMPANY_CODE IN <iterate close=")" open="(" conjunction="," property="companyCodes">#companyCodes[]#</iterate>
</isNotEmpty>
<isNotEmpty prepend=" AND " property="remainingAmount">
REMAINING_AMOUNT > #remainingAmount#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="signingDateFrom">
SIGNING_DATE >= #signingDateFrom#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="signingDateTo">
SIGNING_DATE &lt;= #signingDateTo#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="supName">
PARTY_B like concat('%',#supName#,'%')
</isNotEmpty>
</sql>
<select id="query" parameterClass="java.util.HashMap"
......
......@@ -175,7 +175,7 @@
$orderBy$
</isNotEmpty>
<isEmpty property="orderBy">
ID asc
ID desc
</isEmpty>
</dynamic>
......
......@@ -42,6 +42,7 @@
T1.COMPANY_NAME as "companyName", <!-- 公司名称 -->
T1.PROJ_CODE as "projCode", <!-- 项目编码 -->
T1.PROJ_NAME as "projName", <!-- 项目名称 -->
B.PARTY_B AS "partyB", <!-- 乙方名称 -->
T1.CONTRACT_NUMBER as "contractNumber", <!-- 合同号 -->
T1.CONTRACT_NAME as "contractName", <!-- 合同名称 -->
T1.SETTLEMENT_NUMBER as "settlementNumber", <!-- 结算编号 -->
......@@ -182,15 +183,26 @@
B.CONTRACT_TYPE = #contractType#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="companyCodes">
COMPANY_CODE IN <iterate close=")" open="(" conjunction="," property="companyCodes">#companyCodes[]#</iterate>
T1.COMPANY_CODE IN <iterate close=")" open="(" conjunction="," property="companyCodes">#companyCodes[]#</iterate>
</isNotEmpty>
<isNotEmpty prepend=" AND " property="remainingAmount">
T1.REMAINING_AMOUNT > #remainingAmount#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="signingDateFrom">
T1.CONTRACT_DATE >= #signingDateFrom#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="signingDateTo">
T1.CONTRACT_DATE &lt;= #signingDateTo#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="supName">
B.PARTY_B like concat('%',#supName#,'%')
</isNotEmpty>
</sql>
<select id="query" parameterClass="java.util.HashMap"
resultClass="com.baosight.hggp.hg.cw.domain.HGCW008">
SELECT
<include refid="column"/>
FROM ${hggpSchema}.HGCW008 T1 LEFT JOIN
${hggpSchema}.HGCW002 B
FROM ${hggpSchema}.HGCW008 T1 LEFT JOIN ${hggpSchema}.HGCW002 B
ON T1.PROJ_CODE = B.PROJ_CODE
AND T1.CONTRACT_NUMBER = B.CONTRACT_NUMBER
AND T1.COMPANY_CODE = B.COMPANY_CODE
......
......@@ -137,6 +137,29 @@ public class HGCWTools {
});
return results.get(0);
}
public static void deductionAmount(String settlementNumber, BigDecimal deductionAmount) {
AssertUtils.isNull(settlementNumber, "来源单号不能为空!");
// if (deductionAmount.compareTo(new BigDecimal(BigInteger.ZERO)) <= 0) {
// throw new PlatException("扣款金额不能小于等于0!");
// }
List<HGCW006> results = DaoBase.getInstance().query(HGCW008.QUERY,new HashMap<String,Object>(){
{put("contractNumber",settlementNumber);}
});
if (CollectionUtils.isEmpty(results)) {
throw new PlatException("找不到对应的结算单!");
}
DecimalFormat decimalFormat = new DecimalFormat("#.000");
HGCW006 hgcw006 = results.get(0);
BigDecimal remainingAmount = new BigDecimal(decimalFormat.format(hgcw006.getRemainingAmount().subtract(deductionAmount)));
if (remainingAmount.compareTo(new BigDecimal(BigInteger.ZERO)) < 0) {
throw new PlatException("扣款金额不能大于结算单剩余金额!");
}
hgcw006.setRemainingAmount(remainingAmount);
DaoUtils.update("HGCW006.updateDeductionAmount", hgcw006);
}
}
public static class HgCw007 {
......@@ -525,6 +548,7 @@ public class HGCWTools {
HGCW013.setSettlementNumber(settlementNumber);
HGCW013.setThisSettlementTax(thisSettlementTax.toString());
HGCW013.setThisSettlementAmount(thisSettlementAmount.toString());
HGCW013.setPartyA(row.get("partyB").toString());
if (mainId != null) {
HGCW013.setMainId(mainId);
}
......@@ -550,6 +574,7 @@ public class HGCWTools {
HGCW013.setSettlementNumber(settlementNumber);
HGCW013.setThisSettlementTax(thisSettlementTax.toString());
HGCW013.setThisSettlementAmount(thisSettlementAmount.toString());
HGCW013.setPartyA(row.get("partyB").toString());
if (mainId != null) {
HGCW013.setMainId(mainId);
}
......
......@@ -151,7 +151,7 @@ function windowCallback() {
function contractDetailFunc(id) {
JSColorbox.open({
href: "HGCW012A?methodName=initLoad&efParentFormEname=HGCW010",
href: "HGCW012C?methodName=initLoad&inqu_status-0-matId=" + id + "&efParentFormEname=HGCW010",
title: "<div style='text-align: center;'>明细详情</div>",
width: "90%",
height: "90%",
......
......@@ -28,16 +28,16 @@
<EF:EFGrid blockId="result" autoDraw="no" isFloat="true" autoBind="false">
<EF:EFColumn ename="id" cname="主键" hidden="true"/>
<EF:EFColumn ename="operator" cname="操作" locked="true" enable="false" width="140" align="center"/>
<EF:EFColumn ename="partyA" cname="供应商名称" width="120" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="settlementNumber" cname="来源单号" width="120" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="partyA" cname="供应商名称" width="220" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="settlementNumber" cname="来源单号" width="200" enable="false" readonly="true" align="center"/>
<EF:EFComboColumn ename="billTybe" cname="票据类型" width="120" align="center" required="true"
columnTemplate="#=textField#" itemTemplate="#=textField#" enable="true" >
<EF:EFCodeOption codeName="hggp.cw.billTybe"/>
</EF:EFComboColumn>
<EF:EFColumn ename="receiveDate" cname="收票日期" width="120" enable="true" align="center" editType="date"
dateFormat="yyyy-MM-dd" parseFormats="['yyyy-MM-dd']" required="true" />
dateFormat="yyyy-MM-dd" parseFormats="['yyyyMMdd']" required="true" />
<EF:EFColumn ename="signingDate" cname="开票日期" width="120" enable="true" align="center" editType="date"
dateFormat="yyyy-MM-dd" parseFormats="['yyyy-MM-dd']" required="true" />
dateFormat="yyyy-MM-dd" parseFormats="['yyyyMMdd']" required="true" />
<EF:EFColumn ename="billNumber" cname="发票号" width="120" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="taxPoints" cname="税率" width="120" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="thisSettlementAmount" cname="不含税金额" width="120" enable="false" readonly="true" align="center"/>
......
......@@ -37,7 +37,15 @@ $(window).load(function () {
* 查询
*/
let query = function () {
resultGrid.dataSource.page(1);
if (selectedTab == 0){
resultGrid.dataSource.page(1);
}else if (selectedTab == 1){
resultAGrid.dataSource.page(1);
}else if (selectedTab == 2){
resultBGrid.dataSource.page(1);
}
}
function cancelFunc() {
......@@ -124,7 +132,14 @@ function btnSaveFunc(btnNode, gridNode) {
});
}
}
var selectedTab = '';
function onSelect(e) {
var selecTab = e.item; // e.item是被选中的标签DOM元素
selectedTab = $("#info").find("li").index(selecTab); // 获取被选中标签的索引
//var selectedTabText = $(selectedTab).find("a").text(); // 获取被选中标签的文本
}
$(function () {
$("#SEARCH").click(function () {
var ei = new EiInfo();
......@@ -236,10 +251,18 @@ $(function () {
{
field: "projName",
title: "项目名称",
width: 200,
headerTemplate: "<span style='color: '>项目名称 </span>",
locked: false
},
{
field: "partyB",
title: "供应商",
hidden: true,
headerTemplate: "<span style='color: '>供应商 </span>",
locked: false
},
{
field: "settlementNumber",
title: "结算编号",
headerTemplate: "<span style='color: '>结算编号 </span>",
......@@ -328,6 +351,13 @@ $(function () {
locked: false
},
{
field: "partyB",
title: "供应商",
hidden: true,
headerTemplate: "<span style='color: '>供应商 </span>",
locked: false
},
{
field: "contractNumber",
title: "结算编号",
headerTemplate: "<span style='color: '>结算编号 </span>",
......@@ -403,7 +433,8 @@ $(function () {
} else if (e.name == "info-tab-3") {
$("#info-tab-3").click();
}*/
}
},
select: onSelect // 绑定select事件处理函数
}
}
});
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment