Commit 3c166634 by liuyang

2024-09-13

1.结算单选择合同逻辑调整
2.销售开票选择合同逻辑调整
3.结算单选择项目过滤条件修复
parent 20741f2a
...@@ -397,11 +397,100 @@ public class ServiceHGCW002 extends ServiceBase { ...@@ -397,11 +397,100 @@ public class ServiceHGCW002 extends ServiceBase {
} }
public EiInfo queryContractByType(EiInfo inInfo){ public EiInfo queryContractByType(EiInfo inInfo){
Map<String, Object> map = new HashMap<>(); List<Map<String, String>> params = inInfo.getBlock(EiConstant.queryBlock).getRows();
if (StringUtils.isNotEmpty(inInfo.getString("reviewStatus"))) { inInfo = super.query(inInfo, "HGCW002.queryContractByType", new HGCW002());
map.put("reviewStatus", "3"); List<HGCW002> hgcw002s = MapUtils.toDaoEPBases(inInfo.getBlock(EiConstant.resultBlock).getRows(), HGCW002.class);
if(CollectionUtils.isNotEmpty(params)){
if (CollectionUtils.isNotEmpty(hgcw002s)){
Map<String, String> map1 = params.get(0);
Map<String, String> map2 = params.size()>1?params.get(1):null;
if (StringUtils.isNotEmpty(map1.get("projCode")) && StringUtils.isNotEmpty(map2.get("projCode"))){
switch (map2.get("projCode")){
case "eq":
hgcw002s = hgcw002s.stream().filter(hgpz002 -> hgpz002.getProjCode().equals(map1.get("projCode"))).collect(Collectors.toList());
break;
case "neq":
hgcw002s = hgcw002s.stream().filter(hgpz002 -> !hgpz002.getProjCode().equals(map1.get("projCode"))).collect(Collectors.toList());
break;
default:
hgcw002s = hgcw002s.stream().filter(hgpz002 -> hgpz002.getProjCode().contains(map1.get("projCode"))).collect(Collectors.toList());
}
}
if (StringUtils.isNotEmpty(map1.get("projName")) && StringUtils.isNotEmpty(map2.get("projName"))){
switch (map2.get("projName")){
case "eq":
hgcw002s = hgcw002s.stream().filter(hgpz002 -> hgpz002.getProjName().equals(map1.get("projName"))).collect(Collectors.toList());
break;
case "neq":
hgcw002s = hgcw002s.stream().filter(hgpz002 -> !hgpz002.getProjName().equals(map1.get("projName"))).collect(Collectors.toList());
break;
default:
hgcw002s = hgcw002s.stream().filter(hgpz002 -> hgpz002.getProjName().contains(map1.get("projName"))).collect(Collectors.toList());
}
}
if (StringUtils.isNotEmpty(map1.get("contractNumber")) && StringUtils.isNotEmpty(map2.get("contractNumber"))){
switch (map2.get("contractNumber")){
case "eq":
hgcw002s = hgcw002s.stream().filter(hgpz002 -> hgpz002.getContractNumber().equals(map1.get("contractNumber"))).collect(Collectors.toList());
break;
case "neq":
hgcw002s = hgcw002s.stream().filter(hgpz002 -> !hgpz002.getContractNumber().equals(map1.get("contractNumber"))).collect(Collectors.toList());
break;
default:
hgcw002s = hgcw002s.stream().filter(hgpz002 -> hgpz002.getContractNumber().contains(map1.get("contractNumber"))).collect(Collectors.toList());
}
}
if (StringUtils.isNotEmpty(map1.get("contractName")) && StringUtils.isNotEmpty(map2.get("contractName"))){
switch (map2.get("contractName")){
case "eq":
hgcw002s = hgcw002s.stream().filter(hgpz002 -> hgpz002.getContractName().equals(map1.get("contractName"))).collect(Collectors.toList());
break;
case "neq":
hgcw002s = hgcw002s.stream().filter(hgpz002 -> !hgpz002.getContractName().equals(map1.get("contractName"))).collect(Collectors.toList());
break;
default:
hgcw002s = hgcw002s.stream().filter(hgpz002 -> hgpz002.getContractName().contains(map1.get("contractName"))).collect(Collectors.toList());
}
}
if (StringUtils.isNotEmpty(map1.get("totalContractPriceIncluding")) && StringUtils.isNotEmpty(map2.get("totalContractPriceIncluding"))){
switch (map2.get("totalContractPriceIncluding")){
case "eq":
hgcw002s = hgcw002s.stream().filter(hgpz002 -> hgpz002.getPartyA().equals(map2.get("totalContractPriceIncluding"))).collect(Collectors.toList());
break;
case "neq":
hgcw002s = hgcw002s.stream().filter(hgpz002 -> !hgpz002.getPartyA().equals(map2.get("totalContractPriceIncluding"))).collect(Collectors.toList());
break;
default:
hgcw002s = hgcw002s.stream().filter(hgpz002 -> hgpz002.getPartyA().contains(map2.get("totalContractPriceIncluding"))).collect(Collectors.toList());
}
}
if (StringUtils.isNotEmpty(map1.get("contractTypeStr")) && StringUtils.isNotEmpty(map2.get("contractTypeStr"))){
switch (map2.get("contractTypeStr")){
case "eq":
hgcw002s = hgcw002s.stream().filter(hgpz002 -> hgpz002.getContractTypeStr().equals(map1.get("contractTypeStr"))).collect(Collectors.toList());
break;
case "neq":
hgcw002s = hgcw002s.stream().filter(hgpz002 -> !hgpz002.getContractTypeStr().equals(map1.get("contractTypeStr"))).collect(Collectors.toList());
break;
default:
hgcw002s = hgcw002s.stream().filter(hgpz002 -> hgpz002.getContractTypeStr().contains(map1.get("contractTypeStr"))).collect(Collectors.toList());
}
}
if (StringUtils.isNotEmpty(map1.get("remainingAmount")) && StringUtils.isNotEmpty(map2.get("remainingAmount"))){
switch (map2.get("remainingAmount")){
case "eq":
hgcw002s = hgcw002s.stream().filter(hgpz002 -> hgpz002.getContractTypeStr().equals(map1.get("remainingAmount"))).collect(Collectors.toList());
break;
case "neq":
hgcw002s = hgcw002s.stream().filter(hgpz002 -> !hgpz002.getContractTypeStr().equals(map1.get("remainingAmount"))).collect(Collectors.toList());
break;
default:
hgcw002s = hgcw002s.stream().filter(hgpz002 -> hgpz002.getContractTypeStr().contains(map1.get("remainingAmount"))).collect(Collectors.toList());
}
}
}
} }
inInfo = super.query(inInfo, "HGCW002.queryContractByType", new HGCW001()); inInfo.getBlock(EiConstant.resultBlock).setRows(hgcw002s);
return inInfo; return inInfo;
} }
......
...@@ -96,32 +96,38 @@ public class ServiceHGCW008 extends ServiceBase { ...@@ -96,32 +96,38 @@ public class ServiceHGCW008 extends ServiceBase {
List<Map> detail1Rows = inInfo.getBlock("detail1").getRows(); List<Map> detail1Rows = inInfo.getBlock("detail1").getRows();
if (CollectionUtils.isNotEmpty(resultRows)) { if (CollectionUtils.isNotEmpty(resultRows)) {
HGCW008 HGCW008 = new HGCW008(); HGCW008 hgcw008 = new HGCW008();
HGCW008.fromMap(resultRows.get(0)); hgcw008.fromMap(resultRows.get(0));
if (HGCW008.getId() == null || HGCW008.getId() == 0) { if (hgcw008.getId() == null || hgcw008.getId() == 0) {
UserVO userVO = HGCWTools.HgCw002.getUserCompany(); //UserVO userVO = HGCWTools.HgCw002.getUserCompany();
HGSC001 project = HGSCTools.Hgsc001.queryByCode(HGCW008.getProjCode()); HGSC001 project = HGSCTools.Hgsc001.queryByCode(hgcw008.getProjCode());
String settlementNumber = SequenceGenerator.getNextSequence(HGConstant.SequenceId.CW_SETTLEMENT_NO); String settlementNumber = SequenceGenerator.getNextSequence(HGConstant.SequenceId.CW_SETTLEMENT_NO);
HGCW008.setCompanyCode(project.getCompanyCode()); hgcw008.setCompanyCode(project.getCompanyCode());
HGCW008.setCompanyName(project.getCompanyName()); hgcw008.setCompanyName(project.getCompanyName());
HGCW008.setSettlementNumber(settlementNumber); hgcw008.setSettlementNumber(settlementNumber);
HGCW008.setReviewStatus(2); hgcw008.setReviewStatus(2);
HGCW008.setContractDate(DateUtils.formatShort(HGCW008.getContractDate())); hgcw008.setContractDate(DateUtils.formatShort(hgcw008.getContractDate()));
HGCW008.setRemainingAmount(HGCW008.getThisPriceTax()); hgcw008.setRemainingAmount(hgcw008.getThisPriceTax());
this.add(HGCW008); // 反写金额
HGCWTools.HgCw008.remainingAmount(hgcw008.getContractNumber(), hgcw008.getThisPriceTax());
this.add(hgcw008);
// 写入其他数据 // 写入其他数据
HGCWTools.HgCw009.save(detail1Rows,settlementNumber,userVO); HGCWTools.HgCw009.save(detail1Rows,settlementNumber,hgcw008);
} else { } else {
HGCW008.setContractDate(DateUtils.formatShort(HGCW008.getContractDate())); hgcw008.setContractDate(DateUtils.formatShort(hgcw008.getContractDate()));
this.modify(HGCW008); HGCW008 hgcw008Db = HGCWTools.HgCw008.getId(hgcw008.getId().toString());
BigDecimal thisPriceTax = hgcw008.getThisPriceTax().subtract(hgcw008Db.getThisPriceTax());
// 反写金额
HGCWTools.HgCw008.remainingAmount(hgcw008.getContractNumber(), thisPriceTax);
this.modify(hgcw008);
HGCWTools.HgCw009.update(detail1Rows); HGCWTools.HgCw009.update(detail1Rows);
} }
// 更新合同结算状态 // 更新合同结算状态
HGCWTools.HgCw002.updateBalanceStatus(HGCW008.getContractNumber(),HGCW008.getSettlementType() + 1); HGCWTools.HgCw002.updateBalanceStatus(hgcw008.getContractNumber(),hgcw008.getSettlementType() + 1);
//更新金额 //更新金额
HGCWTools.HgCw009.calculateAmount(HGCW008.getSettlementNumber()); HGCWTools.HgCw009.calculateAmount(hgcw008.getSettlementNumber());
} }
inInfo = this.query(inInfo);
inInfo.setStatus(EiConstant.STATUS_DEFAULT); inInfo.setStatus(EiConstant.STATUS_DEFAULT);
inInfo.setMsg("操作成功!本次对[" + resultRows.size() + "]条数据保存成功!"); inInfo.setMsg("操作成功!本次对[" + resultRows.size() + "]条数据保存成功!");
} catch (Exception e) { } catch (Exception e) {
...@@ -164,14 +170,15 @@ public class ServiceHGCW008 extends ServiceBase { ...@@ -164,14 +170,15 @@ public class ServiceHGCW008 extends ServiceBase {
for (Map resultRow : resultRows) { for (Map resultRow : resultRows) {
HGCW008 hgcw008 = new HGCW008(); HGCW008 hgcw008 = new HGCW008();
hgcw008.fromMap(resultRow); hgcw008.fromMap(resultRow);
List<HGCW010> hgcw010List = DaoBase.getInstance().query(HGCW011.QUERY, List<HGCW010> hgcw010List = DaoBase.getInstance().query(HGCW010.QUERY,
new HashMap<String, Object>(){{ new HashMap<String, Object>(){{
put(HGCW010.FIELD_SETTLEMENT_NUMBER,hgcw008.getSettlementNumber()); put(HGCW010.FIELD_SETTLEMENT_NUMBER,hgcw008.getSettlementNumber());
}}); }});
AssertUtils.isNotEmpty(hgcw010List, "结算单[" + hgcw008.getSettlementNumber() + "]已生成销售开票,不能删除!"); AssertUtils.isNotEmpty(hgcw010List, "结算单[" + hgcw008.getSettlementNumber() + "]已生成销售开票,不能删除!");
// 反写金额
HGCWTools.HgCw008.remainingAmount(hgcw008.getContractNumber(), hgcw008.getThisPriceTax().negate());
DaoUtils.update(HGCW008.DELETE, hgcw008); DaoUtils.update(HGCW008.DELETE, hgcw008);
} }
inInfo = this.query(inInfo);
inInfo.setStatus(EiConstant.STATUS_DEFAULT); inInfo.setStatus(EiConstant.STATUS_DEFAULT);
inInfo.setMsg("操作成功!本次对[" + resultRows.size() + "]条数据删除成功!"); inInfo.setMsg("操作成功!本次对[" + resultRows.size() + "]条数据删除成功!");
} catch (Exception e) { } catch (Exception e) {
......
...@@ -6,8 +6,12 @@ import com.baosight.hggp.hg.cw.domain.HGCW008; ...@@ -6,8 +6,12 @@ import com.baosight.hggp.hg.cw.domain.HGCW008;
import com.baosight.hggp.hg.cw.vo.UserVO; import com.baosight.hggp.hg.cw.vo.UserVO;
import com.baosight.hggp.hg.xs.domain.Org; import com.baosight.hggp.hg.xs.domain.Org;
import com.baosight.hggp.hg.xs.tools.HGXSTools; import com.baosight.hggp.hg.xs.tools.HGXSTools;
import com.baosight.hggp.util.AssertUtils;
import com.baosight.hggp.util.CommonMethod; import com.baosight.hggp.util.CommonMethod;
import com.baosight.hggp.util.DateUtils;
import com.baosight.hggp.util.LogUtils; import com.baosight.hggp.util.LogUtils;
import com.baosight.hggp.util.contants.ACConstants;
import com.baosight.iplat4j.core.ei.EiConstant;
import com.baosight.iplat4j.core.ei.EiInfo; import com.baosight.iplat4j.core.ei.EiInfo;
import com.baosight.iplat4j.core.exception.PlatException; import com.baosight.iplat4j.core.exception.PlatException;
import com.baosight.iplat4j.core.service.impl.ServiceBase; import com.baosight.iplat4j.core.service.impl.ServiceBase;
...@@ -33,6 +37,7 @@ public class ServiceHGCW008A extends ServiceBase { ...@@ -33,6 +37,7 @@ public class ServiceHGCW008A extends ServiceBase {
public EiInfo initLoad(EiInfo inInfo) { public EiInfo initLoad(EiInfo inInfo) {
try { try {
CommonMethod.initBlock(inInfo, Arrays.asList(DdynamicEnum.PROJECT_CODE_BOX_BLOCK_ID), null, false); CommonMethod.initBlock(inInfo, Arrays.asList(DdynamicEnum.PROJECT_CODE_BOX_BLOCK_ID), null, false);
inInfo.setCell(EiConstant.resultBlock, ACConstants.ROW_CODE_0, HGCW008.FIELD_CONTRACT_DATE, DateUtils.shortDate());
inInfo.addBlock("detail1").addBlockMeta(new HGCW008().eiMetadata); inInfo.addBlock("detail1").addBlockMeta(new HGCW008().eiMetadata);
} catch (PlatException e) { } catch (PlatException e) {
LogUtils.setDetailMsg(inInfo, e, "初始化失败"); LogUtils.setDetailMsg(inInfo, e, "初始化失败");
......
...@@ -70,9 +70,9 @@ public class ServiceHGCW009 extends ServiceBase { ...@@ -70,9 +70,9 @@ public class ServiceHGCW009 extends ServiceBase {
for (int i = 0; i < resultRows.size(); i++) { for (int i = 0; i < resultRows.size(); i++) {
HGCW009 HGCW009 = new HGCW009(); HGCW009 HGCW009 = new HGCW009();
HGCW009.fromMap(resultRows.get(i)); HGCW009.fromMap(resultRows.get(i));
UserVO userVO = HGCWTools.HgCw002.getUserCompany(); //UserVO userVO = HGCWTools.HgCw002.getUserCompany();
HGCW009.setCompanyCode(userVO.getUsercode()); //HGCW009.setCompanyCode(userVO.getUsercode());
HGCW009.setCompanyName(userVO.getUsername()); //HGCW009.setCompanyName(userVO.getUsername());
settlementNumber = HGCW009.getSettlementNumber(); settlementNumber = HGCW009.getSettlementNumber();
if (HGCW009.getId() == null || HGCW009.getId() == 0) { if (HGCW009.getId() == null || HGCW009.getId() == 0) {
this.add(HGCW009); this.add(HGCW009);
......
...@@ -125,7 +125,8 @@ public class ServiceHGCW010D extends ServiceEPBase { ...@@ -125,7 +125,8 @@ public class ServiceHGCW010D extends ServiceEPBase {
hgcw011.setMainId(hgcw010.getId()); hgcw011.setMainId(hgcw010.getId());
hgcw011.setId(null); hgcw011.setId(null);
// 反写金额 // 反写金额
HGCWTools.HgCw002.deductionAmount(hgcw011.getSettlementNumber(),rowMap.get(hgcw011.getSettlementNumber())); //HGCWTools.HgCw002.deductionAmount(hgcw011.getSettlementNumber(),rowMap.get(hgcw011.getSettlementNumber()));
HGCWTools.HgCw008.remainingAmount(hgcw011.getSettlementNumber(), rowMap.get(hgcw011.getSettlementNumber()));
DaoUtils.insert(HGCW011.INSERT, hgcw011); DaoUtils.insert(HGCW011.INSERT, hgcw011);
} }
} else { } else {
...@@ -141,7 +142,8 @@ public class ServiceHGCW010D extends ServiceEPBase { ...@@ -141,7 +142,8 @@ public class ServiceHGCW010D extends ServiceEPBase {
for (HGCW011 hgcw011 : hgcw011List) { for (HGCW011 hgcw011 : hgcw011List) {
hgcw011.setMainId(hgcw010.getId()); hgcw011.setMainId(hgcw010.getId());
// 反写金额 // 反写金额
HGCWTools.HgCw002.deductionAmount(hgcw011.getSettlementNumber(),rowMap.get(hgcw011.getSettlementNumber())); //HGCWTools.HgCw002.deductionAmount(hgcw011.getSettlementNumber(),rowMap.get(hgcw011.getSettlementNumber()));
HGCWTools.HgCw008.remainingAmount(hgcw011.getSettlementNumber(), rowMap.get(hgcw011.getSettlementNumber()));
this.addHGCW011(hgcw011); this.addHGCW011(hgcw011);
} }
List<HGCW011> hgcw011s = HGCWTools.HgCw011.getMainId(hgcw010.getId()); List<HGCW011> hgcw011s = HGCWTools.HgCw011.getMainId(hgcw010.getId());
......
...@@ -47,7 +47,50 @@ ...@@ -47,7 +47,50 @@
--> -->
<sqlMap namespace="HGCW002"> <sqlMap namespace="HGCW002">
<typeAlias alias="HGCW002" type="com.baosight.hggp.hg.cw.domain.HGCW002"/>
<sql id="column">
ID as "id",
ACCOUNT_CODE as "accountCode", <!-- 企业编码 -->
COMPANY_CODE as "companyCode", <!-- 公司编码 -->
COMPANY_NAME as "companyName", <!-- 公司名称 -->
PROJ_CODE as "projCode", <!-- 项目编码 -->
PROJ_NAME as "projName", <!-- 项目名称 -->
CONTRACT_NUMBER as "contractNumber", <!-- 合同号 -->
CONTRACT_NAME as "contractName", <!-- 合同名称 -->
CONTRACT_TYPE as "contractType", <!-- 合同类型;1销售合同2劳务合同3补充协议4合同外用工 -->
CONTRACT_CATEGORY as "contractCategory", <!-- 合同类别;1支出2收入 -->
PARTY_A as "partyA", <!-- 甲方名称 -->
PARTY_B as "partyB", <!-- 乙方名称 -->
PARTY_C as "partyC", <!-- 丙方名称 -->
PLAN_START_DATE as "planStartDate", <!-- 计划开工日期 -->
PLAN_END_DATE as "planEndDate", <!-- 计划竣工日期 -->
CONTRACT_STATUS as "contractStatus", <!-- 合同状态;1草签2签约 -->
PARTY_A_NAME as "partyAName", <!-- 甲方联系人姓名 -->
PARTY_A_PHONE_NUMBER as "partyAPhoneNumber", <!-- 甲方联系人电话 -->
ALREADY_NAME as "alreadyName", <!-- 已方联系人姓名 -->
ALREADY_PHONE_NUMBER as "alreadyPhoneNumber", <!-- 已方联系人电话 -->
ENGINEERING_ADDRESS as "engineeringAddress", <!-- 工程地址 -->
SIGNING_DATE as "signingDate", <!-- 签约日期 -->
MAIN_CONTRACT_NUMBER as "mainContractNumber", <!-- 主合同号 -->
CONTRACT_CONTENT as "contractContent", <!-- 合同内容 -->
CONTRACTING_METHOD as "contractingMethod", <!-- 承包方式 -->
PAYMENT_METHOD as "paymentMethod", <!-- 付款方式;1一次性付款2分期付款 -->
PRICING_METHOD as "pricingMethod", <!-- 计价方式;1固定单价合同2固定总价合同 -->
TAX_POINTS as "taxPoints", <!-- 税点 -->
TOTAL_CONTRACT_PRICE_EXCLUDING as "totalContractPriceExcluding", <!-- 合同总价(不含税) -->
VALUE_ADDED_TAX as "valueAddedTax", <!-- 税点 -->
TOTAL_CONTRACT_PRICE_INCLUDING as "totalContractPriceIncluding", <!-- 合同总价(含税) -->
REVIEW_STATUS as "reviewStatus", <!-- 审核状态 -->
BALANCE_STATUS as "balanceStatus", <!-- 结算状态;1未结算2部分结算3最终结算 -->
CREATED_BY as "createdBy", <!-- 记录创建者 -->
CREATED_NAME as "createdName", <!-- 记录创建名称 -->
CREATED_TIME as "createdTime", <!-- 记录创建时间 -->
UPDATED_BY as "updatedBy", <!-- 记录修改者 -->
UPDATED_NAME as "updatedName", <!-- 记录修改名称 -->
UPDATED_TIME as "updatedTime", <!-- 记录修改时间 -->
DEP_CODE as "depCode", <!-- 部门编码 -->
REMAINING_AMOUNT as "remainingAmount"
</sql>
<sql id="condition"> <sql id="condition">
<include refid="HGXSDataAuth.authCondition"/> <include refid="HGXSDataAuth.authCondition"/>
<isNotEmpty prepend=" AND " property="id"> <isNotEmpty prepend=" AND " property="id">
...@@ -178,50 +221,9 @@ ...@@ -178,50 +221,9 @@
</isNotEmpty> </isNotEmpty>
</sql> </sql>
<select id="query" parameterClass="java.util.HashMap" <select id="query" parameterClass="java.util.HashMap" resultClass="HGCW002">
resultClass="com.baosight.hggp.hg.cw.domain.HGCW002">
SELECT SELECT
ID as "id", <include refid="column" />
ACCOUNT_CODE as "accountCode", <!-- 企业编码 -->
COMPANY_CODE as "companyCode", <!-- 公司编码 -->
COMPANY_NAME as "companyName", <!-- 公司名称 -->
PROJ_CODE as "projCode", <!-- 项目编码 -->
PROJ_NAME as "projName", <!-- 项目名称 -->
CONTRACT_NUMBER as "contractNumber", <!-- 合同号 -->
CONTRACT_NAME as "contractName", <!-- 合同名称 -->
CONTRACT_TYPE as "contractType", <!-- 合同类型;1销售合同2劳务合同3补充协议4合同外用工 -->
CONTRACT_CATEGORY as "contractCategory", <!-- 合同类别;1支出2收入 -->
PARTY_A as "partyA", <!-- 甲方名称 -->
PARTY_B as "partyB", <!-- 乙方名称 -->
PARTY_C as "partyC", <!-- 丙方名称 -->
PLAN_START_DATE as "planStartDate", <!-- 计划开工日期 -->
PLAN_END_DATE as "planEndDate", <!-- 计划竣工日期 -->
CONTRACT_STATUS as "contractStatus", <!-- 合同状态;1草签2签约 -->
PARTY_A_NAME as "partyAName", <!-- 甲方联系人姓名 -->
PARTY_A_PHONE_NUMBER as "partyAPhoneNumber", <!-- 甲方联系人电话 -->
ALREADY_NAME as "alreadyName", <!-- 已方联系人姓名 -->
ALREADY_PHONE_NUMBER as "alreadyPhoneNumber", <!-- 已方联系人电话 -->
ENGINEERING_ADDRESS as "engineeringAddress", <!-- 工程地址 -->
SIGNING_DATE as "signingDate", <!-- 签约日期 -->
MAIN_CONTRACT_NUMBER as "mainContractNumber", <!-- 主合同号 -->
CONTRACT_CONTENT as "contractContent", <!-- 合同内容 -->
CONTRACTING_METHOD as "contractingMethod", <!-- 承包方式 -->
PAYMENT_METHOD as "paymentMethod", <!-- 付款方式;1一次性付款2分期付款 -->
PRICING_METHOD as "pricingMethod", <!-- 计价方式;1固定单价合同2固定总价合同 -->
TAX_POINTS as "taxPoints", <!-- 税点 -->
TOTAL_CONTRACT_PRICE_EXCLUDING as "totalContractPriceExcluding", <!-- 合同总价(不含税) -->
VALUE_ADDED_TAX as "valueAddedTax", <!-- 税点 -->
TOTAL_CONTRACT_PRICE_INCLUDING as "totalContractPriceIncluding", <!-- 合同总价(含税) -->
REVIEW_STATUS as "reviewStatus", <!-- 审核状态 -->
BALANCE_STATUS as "balanceStatus", <!-- 结算状态;1未结算2部分结算3最终结算 -->
CREATED_BY as "createdBy", <!-- 记录创建者 -->
CREATED_NAME as "createdName", <!-- 记录创建名称 -->
CREATED_TIME as "createdTime", <!-- 记录创建时间 -->
UPDATED_BY as "updatedBy", <!-- 记录修改者 -->
UPDATED_NAME as "updatedName", <!-- 记录修改名称 -->
UPDATED_TIME as "updatedTime", <!-- 记录修改时间 -->
DEP_CODE as "depCode", <!-- 部门编码 -->
REMAINING_AMOUNT as "remainingAmount"
FROM ${hggpSchema}.HGCW002 WHERE 1=1 FROM ${hggpSchema}.HGCW002 WHERE 1=1
<include refid="condition" /> <include refid="condition" />
<dynamic prepend="ORDER BY"> <dynamic prepend="ORDER BY">
...@@ -465,8 +467,7 @@ ...@@ -465,8 +467,7 @@
</update> </update>
<select id="queryComboBox" parameterClass="java.util.HashMap" <select id="queryComboBox" parameterClass="java.util.HashMap" resultClass="HGCW002">
resultClass="com.baosight.hggp.hg.cw.domain.HGCW002">
SELECT DISTINCT SELECT DISTINCT
CONTRACT_NUMBER as contractNumber, <!-- 合同号 --> CONTRACT_NUMBER as contractNumber, <!-- 合同号 -->
CONTRACT_NAME as contractName <!-- 合同名称 --> CONTRACT_NAME as contractName <!-- 合同名称 -->
...@@ -580,8 +581,7 @@ ...@@ -580,8 +581,7 @@
ID = #id# ID = #id#
</update> </update>
<select id="queryContractByType" parameterClass="java.util.HashMap" <select id="queryContractByType" parameterClass="java.util.HashMap" resultClass="HGCW002">
resultClass="com.baosight.hggp.hg.cw.domain.HGCW002">
SELECT DISTINCT SELECT DISTINCT
a.PROJ_CODE as "projCode", <!-- 项目编码 --> a.PROJ_CODE as "projCode", <!-- 项目编码 -->
a.PROJ_NAME as "projName", <!-- 项目名称 --> a.PROJ_NAME as "projName", <!-- 项目名称 -->
...@@ -589,15 +589,18 @@ ...@@ -589,15 +589,18 @@
a.CONTRACT_NAME as "contractName", <!-- 合同名称 --> a.CONTRACT_NAME as "contractName", <!-- 合同名称 -->
a.TOTAL_CONTRACT_PRICE_EXCLUDING as "totalContractPriceExcluding", <!-- 合同总价(不含税) --> a.TOTAL_CONTRACT_PRICE_EXCLUDING as "totalContractPriceExcluding", <!-- 合同总价(不含税) -->
a.TOTAL_CONTRACT_PRICE_INCLUDING as "totalContractPriceIncluding", <!-- 合同总价(含税) --> a.TOTAL_CONTRACT_PRICE_INCLUDING as "totalContractPriceIncluding", <!-- 合同总价(含税) -->
a.CONTRACT_TYPE as contractType, <!-- 合同类型;1销售合同2劳务合同3补充协议4合同外用工 --> a.REMAINING_AMOUNT as "remainingAmount",
a.CONTRACT_TYPE as "contractType",
(SELECT ITEM_CNAME FROM ${platSchema}.tedcm01 WHERE CODESET_CODE = 'hggp.cw.contractType' AND ITEM_CODE = a.CONTRACT_TYPE) AS "contractTypeStr",
a.PARTY_A as "partyA", <!-- 甲方名称 --> a.PARTY_A as "partyA", <!-- 甲方名称 -->
a.PARTY_B as "partyB" <!-- 乙方名称 --> a.PARTY_B as "partyB" <!-- 乙方名称 -->
FROM ${hggpSchema}.HGCW002 a FROM ${hggpSchema}.HGCW002 a
LEFT JOIN ${hggpSchema}.HGSC001 b on a.PROJ_CODE = b.PROJ_CODE LEFT JOIN ${hggpSchema}.HGSC001 b on a.PROJ_CODE = b.PROJ_CODE
WHERE 1=1 WHERE 1=1
AND a.REVIEW_STATUS= 3 AND a.REVIEW_STATUS= #reviewStatus#
AND b.approval_status = 2 AND b.approval_status = #approvalStatus#
AND b.proj_status = 0 AND b.proj_status = 0
AND a.REMAINING_AMOUNT > 0
<isNotEmpty prepend=" AND " property="contractType"> <isNotEmpty prepend=" AND " property="contractType">
a.CONTRACT_TYPE = #contractType# a.CONTRACT_TYPE = #contractType#
</isNotEmpty> </isNotEmpty>
......
...@@ -195,7 +195,7 @@ ...@@ -195,7 +195,7 @@
ON T1.PROJ_CODE = B.PROJ_CODE ON T1.PROJ_CODE = B.PROJ_CODE
AND T1.CONTRACT_NUMBER = B.CONTRACT_NUMBER AND T1.CONTRACT_NUMBER = B.CONTRACT_NUMBER
AND T1.COMPANY_CODE = B.COMPANY_CODE AND T1.COMPANY_CODE = B.COMPANY_CODE
WHERE 1=1 AND B.CONTRACT_TYPE = 1 AND T1.REMAINING_AMOUNT != 0 AND T1.REVIEW_STATUS = '3' WHERE 1=1 AND B.CONTRACT_TYPE = 1 AND T1.REMAINING_AMOUNT > 0 AND T1.REVIEW_STATUS = '3'
<include refid="condition" /> <include refid="condition" />
<dynamic prepend="ORDER BY"> <dynamic prepend="ORDER BY">
<isNotEmpty property="orderBy"> <isNotEmpty property="orderBy">
......
...@@ -176,7 +176,7 @@ ...@@ -176,7 +176,7 @@
UPDATED_TIME as "updatedTime", <!-- 记录修改时间 --> UPDATED_TIME as "updatedTime", <!-- 记录修改时间 -->
DEP_CODE as "depCode", <!-- 部门编码 --> DEP_CODE as "depCode", <!-- 部门编码 -->
REMAINING_AMOUNT as "remainingAmount" REMAINING_AMOUNT as "remainingAmount"
FROM ${hggpSchema}.HGCW002 WHERE 1=1 AND CONTRACT_TYPE in (1,5) AND REMAINING_AMOUNT != 0 AND REVIEW_STATUS = '3' FROM ${hggpSchema}.HGCW002 WHERE 1=1 AND CONTRACT_TYPE in (1,5) AND REMAINING_AMOUNT > 0 AND REVIEW_STATUS = '3'
<include refid="condition" /> <include refid="condition" />
<dynamic prepend="ORDER BY"> <dynamic prepend="ORDER BY">
<isNotEmpty property="orderBy"> <isNotEmpty property="orderBy">
......
...@@ -160,7 +160,7 @@ ...@@ -160,7 +160,7 @@
UPDATED_NAME as "updatedName", <!-- 记录修改名称 --> UPDATED_NAME as "updatedName", <!-- 记录修改名称 -->
UPDATED_TIME as "updatedTime", <!-- 记录修改时间 --> UPDATED_TIME as "updatedTime", <!-- 记录修改时间 -->
DEP_CODE as "depCode" <!-- 部门编码 --> DEP_CODE as "depCode" <!-- 部门编码 -->
FROM ${hggpSchema}.HGCW006 WHERE 1=1 AND REMAINING_AMOUNT != 0 AND REVIEW_STATUS = '3' FROM ${hggpSchema}.HGCW006 WHERE 1=1 AND REMAINING_AMOUNT > 0 AND REVIEW_STATUS = '3'
<include refid="condition" /> <include refid="condition" />
<dynamic prepend="ORDER BY"> <dynamic prepend="ORDER BY">
<isNotEmpty property="orderBy"> <isNotEmpty property="orderBy">
......
...@@ -515,16 +515,62 @@ public class HGCWTools { ...@@ -515,16 +515,62 @@ public class HGCWTools {
} }
/**
* 结算单本次结算金额回写
* @param contractNumber 合同号
* @param deductionAmount 本次结算金额
*/
public static void remainingAmount(Object contractNumber, BigDecimal deductionAmount) {
AssertUtils.isNull(contractNumber, "合同不能为空!");
List<HGCW002> hgcw002s = DaoBase.getInstance().query(HGCW002.QUERY,new HashMap<String,Object>(){
{put("contractNumber",contractNumber);}
});
AssertUtils.isEmpty(hgcw002s,"找不到对应的合同!");
//获取销售合同金额和补充协议金额
List<HGCW002> hgcw002List = DaoBase.getInstance().query("HGCW010D.sumContractPrice",
new HashMap<String,Object>(){{
put("contractNumber",contractNumber);
}});
//计算销售合同金额的20%的总金额 总金额=合同金额+合同金额的20%
BigDecimal remaining = hgcw002List.get(0).getTotalContractPriceIncluding().add(hgcw002List.get(0).getTotalContractPriceIncluding().multiply(new BigDecimal("0.2")));
//获取当期项目所有的结算单
List<HGCW008> cw008List = DaoBase.getInstance().query(HGCW008.QUERY,
new HashMap<String,Object>(){{
put("contractNumber",contractNumber);
}});
List<HGCW010> hgcw011List = DaoBase.getInstance().query(HGCW011.QUERY,
new HashMap<String,Object>(){{
put("settlementNumber",contractNumber);
}});
//获取项目结算单累计开票金额
BigDecimal totalAmount08 = cw008List.stream().map(HGCW008::getThisPriceTax).reduce(BigDecimal.ZERO,BigDecimal::add);
//获取销售开票累计开票金额
BigDecimal totalAmount11 = hgcw011List.stream().map(HGCW010::getTotalContractPriceIncluding).reduce(BigDecimal.ZERO,BigDecimal::add);
DecimalFormat decimalFormat = new DecimalFormat("#.000");
//合同总金额-(累计开票金额+本次来票金额)
BigDecimal remainingAmount = new BigDecimal(decimalFormat.format(remaining.subtract(deductionAmount.add(totalAmount08.add(totalAmount11)))));
if (remainingAmount.compareTo(new BigDecimal(BigInteger.ZERO)) < 0) {
throw new PlatException("本次开票金额加累计开票金额超出销售合同金额20%,超出20%需要业务新增补充协议!");
}
HGCW002 hgcw002 = hgcw002s.get(0);
BigDecimal remainingCount = new BigDecimal(decimalFormat.format(hgcw002.getRemainingAmount().subtract(deductionAmount)));
hgcw002.setRemainingAmount(remainingCount);
DaoUtils.update("HGCW002.updateDeductionAmount", hgcw002);
}
} }
public static class HgCw009 { public static class HgCw009 {
public static void save(List<Map> rows, String settlementNumber, UserVO userVO) { public static void save(List<Map> rows, String settlementNumber, HGCW008 hgcw008) {
AssertUtils.isNull(settlementNumber, "结算单号不能为空!"); AssertUtils.isNull(settlementNumber, "结算单号不能为空!");
rows.forEach(row -> { rows.forEach(row -> {
HGCW009 hgcw009 = new HGCW009(); HGCW009 hgcw009 = new HGCW009();
hgcw009.fromMap(row); hgcw009.fromMap(row);
hgcw009.setCompanyCode(userVO.getUsercode()); hgcw009.setCompanyCode(hgcw008.getCompanyCode());
hgcw009.setCompanyName(userVO.getUsername()); hgcw009.setCompanyName(hgcw008.getCompanyCode());
hgcw009.setSettlementNumber(settlementNumber); hgcw009.setSettlementNumber(settlementNumber);
DaoUtils.insert(HGCW009.INSERT, hgcw009); DaoUtils.insert(HGCW009.INSERT, hgcw009);
}); });
......
...@@ -54,9 +54,10 @@ $(function() { ...@@ -54,9 +54,10 @@ $(function() {
beforeAdd :function (e) { beforeAdd :function (e) {
console.log("新增前"); console.log("新增前");
var contractType = $("#contractType").val(); var contractType = $("#contractType").val();
if (contractType == "1") { if (isBlank(contractType)) {
message("请先选择项目!");
} else { e.preventDefault();
} else if (contractType == "2") {
message("劳务合同不可新增!"); message("劳务合同不可新增!");
e.preventDefault(); e.preventDefault();
} }
...@@ -115,6 +116,12 @@ $(function() { ...@@ -115,6 +116,12 @@ $(function() {
IPLATUI.EFPopupInput = { IPLATUI.EFPopupInput = {
"popupInputProjCode": { "popupInputProjCode": {
query: function (e) {
let inInfo = new EiInfo();
inInfo.set("inqu_status-0-reviewStatus", 3);
inInfo.set("inqu_status-0-approvalStatus", 2);
return inInfo;
},
/** /**
* grid中的数据回填时触发的事件 * grid中的数据回填时触发的事件
* @param e 回填数据事件 * @param e 回填数据事件
...@@ -228,9 +235,11 @@ function choiceCallbackFunc(result1, result2, result3) { ...@@ -228,9 +235,11 @@ function choiceCallbackFunc(result1, result2, result3) {
detail1Grid.dataSource.insert(); detail1Grid.dataSource.insert();
detail1Grid.setCellValue(0, "rowNo", 0); detail1Grid.setCellValue(0, "rowNo", 0);
detail1Grid.setCellValue(0, "settlementBasis", "合同内"); detail1Grid.setCellValue(0, "settlementBasis", "合同内");
detail1Grid.setCellValue(0, "thisEngineeringQuantity", item.provisionalQuantity);
detail1Grid.setCellValue(0, "taskName", item.inventory); detail1Grid.setCellValue(0, "taskName", item.inventory);
detail1Grid.setCellValue(0, "unit", item.unit); detail1Grid.setCellValue(0, "unit", item.unit);
detail1Grid.setCellValue(0, "unitPrice", item.unitPriceExcludingTax); detail1Grid.setCellValue(0, "unitPrice", item.totalPriceIncluding / item.provisionalQuantity);
detail1Grid.setCellValue(0, "totalPrice", item.totalPriceIncluding);
detail1Grid.setCellValue(0, "inventoryId", item.id); detail1Grid.setCellValue(0, "inventoryId", item.id);
detail1Grid.refresh(); detail1Grid.refresh();
}) })
...@@ -238,8 +247,10 @@ function choiceCallbackFunc(result1, result2, result3) { ...@@ -238,8 +247,10 @@ function choiceCallbackFunc(result1, result2, result3) {
detail1Grid.dataSource.insert(); detail1Grid.dataSource.insert();
detail1Grid.setCellValue(0, "rowNo", 0); detail1Grid.setCellValue(0, "rowNo", 0);
detail1Grid.setCellValue(0, "settlementBasis", "签证"); detail1Grid.setCellValue(0, "settlementBasis", "签证");
detail1Grid.setCellValue(0, "thisEngineeringQuantity", 1);
detail1Grid.setCellValue(0, "taskName", item.projName); detail1Grid.setCellValue(0, "taskName", item.projName);
detail1Grid.setCellValue(0, "unitPrice", item.totalContractPriceIncluding); detail1Grid.setCellValue(0, "unitPrice", item.totalContractPriceIncluding);
detail1Grid.setCellValue(0, "totalPrice", item.totalContractPriceIncluding);
detail1Grid.setCellValue(0, "remarks", item.contractContent); detail1Grid.setCellValue(0, "remarks", item.contractContent);
detail1Grid.setCellValue(0, "inventoryId", item.id); detail1Grid.setCellValue(0, "inventoryId", item.id);
detail1Grid.refresh(); detail1Grid.refresh();
...@@ -249,9 +260,11 @@ function choiceCallbackFunc(result1, result2, result3) { ...@@ -249,9 +260,11 @@ function choiceCallbackFunc(result1, result2, result3) {
detail1Grid.dataSource.insert(); detail1Grid.dataSource.insert();
detail1Grid.setCellValue(0, "rowNo", 0); detail1Grid.setCellValue(0, "rowNo", 0);
detail1Grid.setCellValue(0, "settlementBasis", "合同内"); detail1Grid.setCellValue(0, "settlementBasis", "合同内");
detail1Grid.setCellValue(0, "thisEngineeringQuantity", item.provisionalQuantity);
detail1Grid.setCellValue(0, "taskName", item.inventory); detail1Grid.setCellValue(0, "taskName", item.inventory);
detail1Grid.setCellValue(0, "unit", item.unit); detail1Grid.setCellValue(0, "unit", item.unit);
detail1Grid.setCellValue(0, "unitPrice", item.unitPriceExcludingTax); detail1Grid.setCellValue(0, "unitPrice", item.totalPriceIncluding / item.provisionalQuantity);
detail1Grid.setCellValue(0, "totalPrice", item.totalPriceIncluding);
detail1Grid.setCellValue(0, "inventoryId", item.id); detail1Grid.setCellValue(0, "inventoryId", item.id);
detail1Grid.refresh(); detail1Grid.refresh();
}) })
...@@ -259,8 +272,10 @@ function choiceCallbackFunc(result1, result2, result3) { ...@@ -259,8 +272,10 @@ function choiceCallbackFunc(result1, result2, result3) {
detail1Grid.dataSource.insert(); detail1Grid.dataSource.insert();
detail1Grid.setCellValue(0, "rowNo", 0); detail1Grid.setCellValue(0, "rowNo", 0);
detail1Grid.setCellValue(0, "settlementBasis", "罚款"); detail1Grid.setCellValue(0, "settlementBasis", "罚款");
detail1Grid.setCellValue(0, "thisEngineeringQuantity", 1);
detail1Grid.setCellValue(0, "taskName", item.projName); detail1Grid.setCellValue(0, "taskName", item.projName);
detail1Grid.setCellValue(0, "unitPrice", item.totalContractPriceIncluding * -1); detail1Grid.setCellValue(0, "unitPrice", item.totalContractPriceIncluding * -1);
detail1Grid.setCellValue(0, "totalPrice", item.totalContractPriceIncluding * -1);
detail1Grid.setCellValue(0, "remarks", item.contractContent); detail1Grid.setCellValue(0, "remarks", item.contractContent);
detail1Grid.setCellValue(0, "inventoryId", item.id); detail1Grid.setCellValue(0, "inventoryId", item.id);
detail1Grid.refresh(); detail1Grid.refresh();
...@@ -269,13 +284,16 @@ function choiceCallbackFunc(result1, result2, result3) { ...@@ -269,13 +284,16 @@ function choiceCallbackFunc(result1, result2, result3) {
detail1Grid.dataSource.insert(); detail1Grid.dataSource.insert();
detail1Grid.setCellValue(0, "rowNo", 0); detail1Grid.setCellValue(0, "rowNo", 0);
detail1Grid.setCellValue(0, "settlementBasis", "签证"); detail1Grid.setCellValue(0, "settlementBasis", "签证");
detail1Grid.setCellValue(0, "thisEngineeringQuantity", 1);
detail1Grid.setCellValue(0, "taskName", item.projName); detail1Grid.setCellValue(0, "taskName", item.projName);
detail1Grid.setCellValue(0, "unitPrice", item.totalContractPriceIncluding); detail1Grid.setCellValue(0, "unitPrice", item.totalContractPriceIncluding);
detail1Grid.setCellValue(0, "totalPrice", item.totalContractPriceIncluding);
detail1Grid.setCellValue(0, "remarks", item.contractContent); detail1Grid.setCellValue(0, "remarks", item.contractContent);
detail1Grid.setCellValue(0, "inventoryId", item.id); detail1Grid.setCellValue(0, "inventoryId", item.id);
detail1Grid.refresh(); detail1Grid.refresh();
}) })
} }
calculateAmount(detail1Grid.getDataItems())
JSColorbox.close(); JSColorbox.close();
} }
...@@ -377,12 +395,12 @@ function calculateAmount(rows) { ...@@ -377,12 +395,12 @@ function calculateAmount(rows) {
//累计价税合计=累计结算金额+累计结算税金 //累计价税合计=累计结算金额+累计结算税金
var cumulativePriceTax = parseFloat(cumulativeSettlementAmount) + parseFloat(cumulativeSettlementTax); var cumulativePriceTax = parseFloat(cumulativeSettlementAmount) + parseFloat(cumulativeSettlementTax);
$("#result-0-thisSettlementAmount").val(parseFloat(thisSettlementAmount).toFixed(3)) $("#result-0-thisSettlementAmount").val(parseFloat(thisSettlementAmount).toFixed(3));
$("#result-0-cumulativeSettlementAmount").val(parseFloat(cumulativeSettlementAmount).toFixed(3)) $("#result-0-cumulativeSettlementAmount").val(parseFloat(cumulativeSettlementAmount).toFixed(3));
$("#result-0-thisSettlementTax").val(parseFloat(thisSettlementTax).toFixed(3)) $("#result-0-thisSettlementTax").val(parseFloat(thisSettlementTax).toFixed(3));
$("#result-0-cumulativeSettlementTax").val(parseFloat(cumulativeSettlementTax).toFixed(3)) $("#result-0-cumulativeSettlementTax").val(parseFloat(cumulativeSettlementTax).toFixed(3));
$("#result-0-thisPriceTax").val(parseFloat(thisPriceTax).toFixed(3)) $("#result-0-thisPriceTax").val(parseFloat(thisPriceTax).toFixed(3));
$("#result-0-cumulativePriceTax").val(parseFloat(cumulativePriceTax).toFixed(3)) $("#result-0-cumulativePriceTax").val(parseFloat(cumulativePriceTax).toFixed(3));
} }
function fieldValidation() { function fieldValidation() {
var projCode = $("#result-0-projCode").val(); var projCode = $("#result-0-projCode").val();
......
...@@ -9,17 +9,15 @@ ...@@ -9,17 +9,15 @@
<EF:EFPage title="新增结算单"> <EF:EFPage title="新增结算单">
<EF:EFRegion id="inqu1" title="基本信息"> <EF:EFRegion id="inqu1" title="基本信息">
<div class="row"> <div class="row">
<EF:EFPopupInput ename="popupInputProjCode" cname="项目编号" colWidth="4" <EF:EFPopupInput ename="popupInputProjCode" cname="项目编号" popupTitle="项目信息" popupWidth="900"
serviceName="HGCW002" methodName="queryContractByType" serviceName="HGCW002" methodName="queryContractByType" resultId="result"
resultId="result" save="false" popupType="ServiceGrid" refresh="true"
save="false" popupType="ServiceGrid"
valueField="projCode" textField="projCode" valueField="projCode" textField="projCode"
columnEnames="projCode,projName,contractNumber,contractName,totalContractPriceIncluding" columnEnames="projCode,projName,contractNumber,contractName,totalContractPriceIncluding,contractTypeStr,remainingAmount"
columnCnames="项目编码,项目名称,合同号,合同名称,合同总价" columnCnames="项目编码,项目名称,合同号,合同名称,合同总价,合同类型,剩余开票金额"
backFillColumnIds="projCode,projName,contractNumber,contractName,totalContractPriceIncluding,contractType" backFillColumnIds="projCode,projName,contractNumber,contractName,totalContractPriceIncluding,contractTypeStr,remainingAmount,contractType"
backFillFieldIds="result-0-projCode,result-0-projName,result-0-contractNumber,result-0-contractName,result-0-totalContractPrice,contractType" backFillFieldIds="result-0-projCode,result-0-projName,result-0-contractNumber,result-0-contractName,result-0-totalContractPrice,result-0-contractTypeStr,result-0-remainingAmount,contractType"
readonly="true" required="true" readonly="true" required="true" resizable="true" colWidth="4">
resizable="true" popupTitle="项目信息" popupWidth="800">
</EF:EFPopupInput> </EF:EFPopupInput>
<EF:EFInput ename="result-0-projCode" cname="项目编号" type="hidden"/> <EF:EFInput ename="result-0-projCode" cname="项目编号" type="hidden"/>
<EF:EFInput ename="result-0-projName" cname="项目简称" colWidth="4" readonly="true"/> <EF:EFInput ename="result-0-projName" cname="项目简称" colWidth="4" readonly="true"/>
...@@ -31,13 +29,13 @@ ...@@ -31,13 +29,13 @@
<EF:EFInput ename="result-0-contractName" cname="合同名称" colWidth="4" readonly="true"/> <EF:EFInput ename="result-0-contractName" cname="合同名称" colWidth="4" readonly="true"/>
<EF:EFInput ename="result-0-settlementNumber" cname="结算编号" colWidth="4" readonly="true"/> <EF:EFInput ename="result-0-settlementNumber" cname="结算编号" colWidth="4" readonly="true"/>
<EF:EFSelect cname="结算类别" ename="result-0-settlementType" colWidth="4" filter="contains"> <EF:EFSelect cname="结算类别" ename="result-0-settlementType" colWidth="4" filter="contains" defaultValue="2">
<EF:EFOption label="-- 请选择 --" value=""/> <EF:EFOption label="-- 请选择 --" value=""/>
<EF:EFCodeOption codeName="hggp.cw.settlementType"/> <EF:EFCodeOption codeName="hggp.cw.settlementType"/>
</EF:EFSelect> </EF:EFSelect>
</div> </div>
<div class="row"> <div class="row">
<EF:EFSelect cname="税点" ename="result-0-taxPoints" colWidth="4" filter="contains"> <EF:EFSelect cname="税点" ename="result-0-taxPoints" colWidth="4" filter="contains" defaultValue="13">
<EF:EFOption label="-- 请选择 --" value=""/> <EF:EFOption label="-- 请选择 --" value=""/>
<EF:EFCodeOption codeName="hggp.cw.taxPoints"/> <EF:EFCodeOption codeName="hggp.cw.taxPoints"/>
</EF:EFSelect> </EF:EFSelect>
...@@ -55,12 +53,13 @@ ...@@ -55,12 +53,13 @@
<EF:EFInput ename="result-0-thisPriceTax" cname="本次结算价税合计金额(元)" colWidth="4" readonly="true"/> <EF:EFInput ename="result-0-thisPriceTax" cname="本次结算价税合计金额(元)" colWidth="4" readonly="true"/>
</div> </div>
<div class="row"> <div class="row">
<EF:EFInput ename="result-0-totalContractPrice" cname="合同金额(元)" colWidth="4" readonly="true"/>
<EF:EFInput ename="result-0-cumulativeSettlementAmount" cname="累计结算金额(元)" colWidth="4" readonly="true"/> <EF:EFInput ename="result-0-cumulativeSettlementAmount" cname="累计结算金额(元)" colWidth="4" readonly="true"/>
<EF:EFInput ename="result-0-cumulativeSettlementTax" cname="累计结算税金(元)" colWidth="4" readonly="true"/> <EF:EFInput ename="result-0-cumulativeSettlementTax" cname="累计结算税金(元)" colWidth="4" readonly="true"/>
<EF:EFInput ename="result-0-cumulativePriceTax" cname="累计结算价税合计金额(元)" colWidth="4" readonly="true"/>
</div> </div>
<div class="row"> <div class="row">
<EF:EFInput ename="result-0-cumulativePriceTax" cname="累计结算价税合计金额(元)" colWidth="4" readonly="true"/> <EF:EFInput ename="result-0-totalContractPrice" cname="合同金额(元)" colWidth="4" readonly="true"/>
<EF:EFInput ename="result-0-remainingAmount" cname="剩余开票金额(元)" colWidth="4" readonly="true"/>
</div> </div>
</EF:EFRegion> </EF:EFRegion>
<EF:EFRegion id="detail1" title="合同清单"> <EF:EFRegion id="detail1" title="合同清单">
......
...@@ -57,9 +57,10 @@ $(function() { ...@@ -57,9 +57,10 @@ $(function() {
beforeAdd :function (e) { beforeAdd :function (e) {
console.log("新增前"); console.log("新增前");
var contractType = $("#contractType").val(); var contractType = $("#contractType").val();
if (contractType == "1") { if (isBlank(contractType)) {
message("请先选择项目!");
} else { e.preventDefault();
} else if (contractType == "2") {
message("劳务合同不可新增!"); message("劳务合同不可新增!");
e.preventDefault(); e.preventDefault();
} }
...@@ -86,7 +87,6 @@ $(function() { ...@@ -86,7 +87,6 @@ $(function() {
// 阻止默认请求,使用自定义删除 // 阻止默认请求,使用自定义删除
e.preventDefault(); e.preventDefault();
deleteResult1Func(); deleteResult1Func();
calculateAmount(detail1Grid.getDataItems());
}, },
} }
...@@ -124,6 +124,12 @@ $(function() { ...@@ -124,6 +124,12 @@ $(function() {
IPLATUI.EFPopupInput = { IPLATUI.EFPopupInput = {
"popupInputProjCode": { "popupInputProjCode": {
query: function (e) {
let inInfo = new EiInfo();
inInfo.set("inqu_status-0-reviewStatus", 3);
inInfo.set("inqu_status-0-approvalStatus", 2);
return inInfo;
},
/** /**
* grid中的数据回填时触发的事件 * grid中的数据回填时触发的事件
* @param e 回填数据事件 * @param e 回填数据事件
...@@ -237,6 +243,7 @@ function choiceCallbackFunc(result1, result2) { ...@@ -237,6 +243,7 @@ function choiceCallbackFunc(result1, result2) {
detail1Grid.dataSource.insert(); detail1Grid.dataSource.insert();
detail1Grid.setCellValue(0, "rowNo", 0); detail1Grid.setCellValue(0, "rowNo", 0);
detail1Grid.setCellValue(0, "settlementBasis", "合同内"); detail1Grid.setCellValue(0, "settlementBasis", "合同内");
detail1Grid.setCellValue(0, "thisEngineeringQuantity", item.provisionalQuantity);
detail1Grid.setCellValue(0, "taskName", item.inventory); detail1Grid.setCellValue(0, "taskName", item.inventory);
detail1Grid.setCellValue(0, "unit", item.unit); detail1Grid.setCellValue(0, "unit", item.unit);
detail1Grid.setCellValue(0, "unitPrice", item.unitPriceExcludingTax); detail1Grid.setCellValue(0, "unitPrice", item.unitPriceExcludingTax);
...@@ -258,6 +265,7 @@ function choiceCallbackFunc(result1, result2) { ...@@ -258,6 +265,7 @@ function choiceCallbackFunc(result1, result2) {
detail1Grid.dataSource.insert(); detail1Grid.dataSource.insert();
detail1Grid.setCellValue(0, "rowNo", 0); detail1Grid.setCellValue(0, "rowNo", 0);
detail1Grid.setCellValue(0, "settlementBasis", "合同内"); detail1Grid.setCellValue(0, "settlementBasis", "合同内");
detail1Grid.setCellValue(0, "thisEngineeringQuantity", item.provisionalQuantity);
detail1Grid.setCellValue(0, "taskName", item.inventory); detail1Grid.setCellValue(0, "taskName", item.inventory);
detail1Grid.setCellValue(0, "unit", item.unit); detail1Grid.setCellValue(0, "unit", item.unit);
detail1Grid.setCellValue(0, "unitPrice", item.unitPriceExcludingTax); detail1Grid.setCellValue(0, "unitPrice", item.unitPriceExcludingTax);
...@@ -494,7 +502,7 @@ function deleteResult1Func() { ...@@ -494,7 +502,7 @@ function deleteResult1Func() {
} }
if (IPLAT.isAvailable("detail1")) { if (IPLAT.isAvailable("detail1")) {
window['detail1Grid'].setEiInfo(ei); window['detail1Grid'].setEiInfo(ei);
calculateAmount(); calculateAmount(detail1Grid.getDataItems());
} }
if (ei.getStatus() == 0) { if (ei.getStatus() == 0) {
NotificationUtil(ei, 'warning'); NotificationUtil(ei, 'warning');
......
...@@ -10,19 +10,17 @@ ...@@ -10,19 +10,17 @@
<EF:EFRegion id="inqu1" title="基本信息"> <EF:EFRegion id="inqu1" title="基本信息">
<EF:EFInput ename="result-0-id" cname="id" type="hidden"/> <EF:EFInput ename="result-0-id" cname="id" type="hidden"/>
<div class="row"> <div class="row">
<EF:EFPopupInput ename="popupInputProjCode" cname="项目编号" colWidth="4" <%--<EF:EFPopupInput ename="popupInputProjCode" cname="项目编号" popupTitle="项目信息" popupWidth="900"
serviceName="HGCW002" methodName="queryContractByType" serviceName="HGCW002" methodName="queryContractByType" resultId="result"
resultId="result" save="false" popupType="ServiceGrid" refresh="true"
save="false" popupType="ServiceGrid"
valueField="projCode" textField="projCode" valueField="projCode" textField="projCode"
columnEnames="projCode,projName,contractNumber,contractName,totalContractPriceExcluding" columnEnames="projCode,projName,contractNumber,contractName,totalContractPriceIncluding,contractTypeStr"
columnCnames="项目编码,项目名称,合同号,合同名称,合同总价" columnCnames="项目编码,项目名称,合同号,合同名称,合同总价,合同类型"
backFillColumnIds="projCode,projName,contractNumber,contractName,totalContractPriceExcluding,contractType" backFillColumnIds="projCode,projName,contractNumber,contractName,totalContractPriceIncluding,contractTypeStr,contractType"
backFillFieldIds="result-0-projCode,result-0-projName,result-0-contractNumber,result-0-contractName,result-0-totalContractPrice,contractType" backFillFieldIds="result-0-projCode,result-0-projName,result-0-contractNumber,result-0-contractName,result-0-totalContractPrice,result-0-contractTypeStr,contractType"
readonly="true" required="true" readonly="true" required="true" resizable="true" colWidth="4">
resizable="true" popupTitle="项目信息" popupWidth="800"> </EF:EFPopupInput>--%>
</EF:EFPopupInput> <EF:EFInput ename="result-0-projCode" cname="项目编号" colWidth="4" readonly="true"/>
<EF:EFInput ename="result-0-projCode" cname="项目编号" type="hidden"/>
<EF:EFInput ename="result-0-projName" cname="项目简称" colWidth="4" readonly="true"/> <EF:EFInput ename="result-0-projName" cname="项目简称" colWidth="4" readonly="true"/>
<EF:EFInput ename="result-0-contractNumber" cname="合同号" colWidth="4" readonly="true" /> <EF:EFInput ename="result-0-contractNumber" cname="合同号" colWidth="4" readonly="true" />
<EF:EFInput ename="contractType" cname="合同类型" type="hidden"/> <EF:EFInput ename="contractType" cname="合同类型" type="hidden"/>
...@@ -55,12 +53,12 @@ ...@@ -55,12 +53,12 @@
<EF:EFInput ename="result-0-thisPriceTax" cname="本次结算价税合计金额(元)" colWidth="4" readonly="true"/> <EF:EFInput ename="result-0-thisPriceTax" cname="本次结算价税合计金额(元)" colWidth="4" readonly="true"/>
</div> </div>
<div class="row"> <div class="row">
<EF:EFInput ename="result-0-totalContractPrice" cname="合同金额(元)" colWidth="4" readonly="true"/>
<EF:EFInput ename="result-0-cumulativeSettlementAmount" cname="累计结算金额(元)" colWidth="4" readonly="true"/> <EF:EFInput ename="result-0-cumulativeSettlementAmount" cname="累计结算金额(元)" colWidth="4" readonly="true"/>
<EF:EFInput ename="result-0-cumulativeSettlementTax" cname="累计结算税金(元)" colWidth="4" readonly="true"/> <EF:EFInput ename="result-0-cumulativeSettlementTax" cname="累计结算税金(元)" colWidth="4" readonly="true"/>
<EF:EFInput ename="result-0-cumulativePriceTax" cname="累计结算价税合计金额(元)" colWidth="4" readonly="true"/>
</div> </div>
<div class="row"> <div class="row">
<EF:EFInput ename="result-0-cumulativePriceTax" cname="累计结算价税合计金额(元)" colWidth="4" readonly="true"/> <EF:EFInput ename="result-0-totalContractPrice" cname="合同金额(元)" colWidth="4" readonly="true"/>
</div> </div>
</EF:EFRegion> </EF:EFRegion>
......
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