fix:外销合同变更单报错处理
This commit is contained in:
parent
38f4e83d30
commit
d1702c914c
@ -71,106 +71,113 @@ public class SalesOrderSubmitOp extends AbstractOperationServicePlugIn {
|
|||||||
super.afterExecuteOperationTransaction(e);
|
super.afterExecuteOperationTransaction(e);
|
||||||
DynamicObject[] eDataEntities = e.getDataEntities();
|
DynamicObject[] eDataEntities = e.getDataEntities();
|
||||||
for (DynamicObject eDataEntity : eDataEntities) {
|
for (DynamicObject eDataEntity : eDataEntities) {
|
||||||
DynamicObjectCollection yemEsMaterialinfo = eDataEntity.getDynamicObjectCollection("yem_es_materialinfo");
|
long aLong = eDataEntity.getLong("id");
|
||||||
for (DynamicObject yemEsMAterialin : yemEsMaterialinfo) {
|
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("yem_es_salesorder", "id,billno,yem_es_materialinfo" +
|
||||||
DynamicObjectCollection yemMulticonfig = yemEsMAterialin.getDynamicObjectCollection("yem_multiconfig");
|
",yem_es_materialinfo.yem_multiconfig,yem_es_materialinfo.yem_optional,yem_multiconfig.yem_configurtypeen"
|
||||||
List<String> list = new ArrayList<>();
|
, new QFilter[]{new QFilter("id", QCP.equals, aLong)});
|
||||||
for (DynamicObject yemMulticon : yemMulticonfig) {
|
if (dynamicObject != null) {
|
||||||
String yemConfigurtypeen = yemMulticon.getString("yem_configurtypeen");
|
DynamicObjectCollection yemEsMaterialinfo = dynamicObject.getDynamicObjectCollection("yem_es_materialinfo");
|
||||||
list.add(yemConfigurtypeen);
|
for (DynamicObject yemEsMAterialin : yemEsMaterialinfo) {
|
||||||
|
DynamicObjectCollection yemMulticonfig = yemEsMAterialin.getDynamicObjectCollection("yem_multiconfig");
|
||||||
|
List<String> list = new ArrayList<>();
|
||||||
|
for (DynamicObject yemMulticon : yemMulticonfig) {
|
||||||
|
String yemConfigurtypeen = yemMulticon.getString("yem_configurtypeen");
|
||||||
|
list.add(yemConfigurtypeen);
|
||||||
|
}
|
||||||
|
String mergedString = String.join(";" + "\n", list);
|
||||||
|
yemEsMAterialin.set("yem_optional", mergedString);
|
||||||
|
SaveServiceHelper.update(dynamicObject);
|
||||||
}
|
}
|
||||||
String mergedString = String.join(";" + "\n", list);
|
|
||||||
yemEsMAterialin.set("yem_optional", mergedString);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新配件客商额度申请单据
|
* 更新配件客商额度申请单据
|
||||||
*
|
*
|
||||||
* @param e
|
* @param e
|
||||||
*/
|
*/
|
||||||
public void updatePartsmerchant (EndOperationTransactionArgs e){
|
public void updatePartsmerchant(EndOperationTransactionArgs e) {
|
||||||
String operationKey = e.getOperationKey();
|
String operationKey = e.getOperationKey();
|
||||||
DynamicObject[] entities = e.getDataEntities();
|
DynamicObject[] entities = e.getDataEntities();
|
||||||
for (DynamicObject entity : entities) {
|
for (DynamicObject entity : entities) {
|
||||||
String fundusetype = entity.getString("yem_fundusetype");
|
String fundusetype = entity.getString("yem_fundusetype");
|
||||||
if (!"A".equals(fundusetype)) {
|
if (!"A".equals(fundusetype)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 公司
|
// 公司
|
||||||
long orgId = entity.getLong("org.id");
|
long orgId = entity.getLong("org.id");
|
||||||
// 客户ID
|
// 客户ID
|
||||||
long customerId = entity.getLong("yem_customer.id");
|
long customerId = entity.getLong("yem_customer.id");
|
||||||
// 产品分类
|
// 产品分类
|
||||||
long productsId = entity.getLong("yem_bd_products.id");
|
long productsId = entity.getLong("yem_bd_products.id");
|
||||||
// 结算币别
|
// 结算币别
|
||||||
long currency = entity.getLong("yem_currency.id");
|
long currency = entity.getLong("yem_currency.id");
|
||||||
// 配件客商/借记额度
|
// 配件客商/借记额度
|
||||||
BigDecimal debitamount = entity.getBigDecimal("yem_debitamount");
|
BigDecimal debitamount = entity.getBigDecimal("yem_debitamount");
|
||||||
// 预计发货时间
|
// 预计发货时间
|
||||||
Date acshipdate = entity.getDate("yem_acshipdate");
|
Date acshipdate = entity.getDate("yem_acshipdate");
|
||||||
// 业务组织 = 公司
|
// 业务组织 = 公司
|
||||||
QFilter qFilters = new QFilter("org.id", QCP.equals, orgId);
|
QFilter qFilters = new QFilter("org.id", QCP.equals, orgId);
|
||||||
// 客户名称 = 客户名称
|
// 客户名称 = 客户名称
|
||||||
qFilters.and(new QFilter("yem_client.id", QCP.equals, customerId));
|
qFilters.and(new QFilter("yem_client.id", QCP.equals, customerId));
|
||||||
// 产品分类 = 产品分类
|
// 产品分类 = 产品分类
|
||||||
qFilters.and(new QFilter("yem_productcategorie", QCP.equals, productsId));
|
qFilters.and(new QFilter("yem_productcategorie", QCP.equals, productsId));
|
||||||
// 单据状态 = 已审核
|
// 单据状态 = 已审核
|
||||||
qFilters.and(new QFilter("billstatus", QCP.equals, "C"));
|
qFilters.and(new QFilter("billstatus", QCP.equals, "C"));
|
||||||
// 合同上结算币别 = 额度申请上 额度币别
|
// 合同上结算币别 = 额度申请上 额度币别
|
||||||
qFilters.and(new QFilter("yem_currency.id", QCP.equals, currency));
|
qFilters.and(new QFilter("yem_currency.id", QCP.equals, currency));
|
||||||
// 日期降序
|
// 日期降序
|
||||||
// qFilters.and(new QFilter("yem_bizdate", QCP.equals));
|
// qFilters.and(new QFilter("yem_bizdate", QCP.equals));
|
||||||
if ("submit".equals(operationKey)) {
|
if ("submit".equals(operationKey)) {
|
||||||
// 根据组织+客户+产品分类,查询 配件客商额度申请单
|
// 根据组织+客户+产品分类,查询 配件客商额度申请单
|
||||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("yem_im_partsmerchant", qFilters.toArray());
|
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("yem_im_partsmerchant", qFilters.toArray());
|
||||||
|
|
||||||
if (dynamicObject == null) {
|
if (dynamicObject == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
;
|
|
||||||
// 配件客商额度申请单 - 分录
|
|
||||||
DynamicObjectCollection collection = dynamicObject.getDynamicObjectCollection("yem_im_entryentity_m");
|
|
||||||
|
|
||||||
// 删除旧的数据,保证相同合同数据只有一条
|
|
||||||
Iterator<DynamicObject> iterator = collection.iterator();
|
|
||||||
while (iterator.hasNext()) {
|
|
||||||
DynamicObject next = iterator.next();
|
|
||||||
long constractId = next.getLong("yem_cn.id");
|
|
||||||
if (constractId == entity.getLong("id")) {
|
|
||||||
iterator.remove();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DynamicObject addNew = collection.addNew();
|
|
||||||
// 合同号 - 基本信息-外销合同号
|
|
||||||
addNew.set("yem_cn", entity.get("id"));
|
|
||||||
// 合同币别 - 财务信息-结算币别
|
|
||||||
addNew.set("yem_currencyfield", entity.get("yem_currency"));
|
|
||||||
// 合同占用金额 - 基本信息-配件客商/借记额度
|
|
||||||
addNew.set("yem_sum", debitamount);
|
|
||||||
// 合同占用金额RMB - 配件客商/借记额度 * 财务信息-汇率
|
|
||||||
addNew.set("yem_localsum", debitamount.multiply(entity.getBigDecimal("yem_exrate")));
|
|
||||||
// 核销金额
|
|
||||||
addNew.set("yem_writtenamt", null);
|
|
||||||
// 核销金额RMB
|
|
||||||
addNew.set("yem_locwrittenamt", null);
|
|
||||||
// 发货时间 - 基本信息-预计发货时间
|
|
||||||
addNew.set("yem_deliverytime", acshipdate);
|
|
||||||
// 最晚还款时间 - 预计发货时间的下个月14号
|
|
||||||
Calendar calendar = Calendar.getInstance();
|
|
||||||
calendar.setTime(acshipdate);
|
|
||||||
calendar.add(Calendar.MONTH, 1);
|
|
||||||
calendar.set(Calendar.DAY_OF_MONTH, 14);
|
|
||||||
addNew.set("yem_optimaltime", calendar.getTime());
|
|
||||||
// 实际还款时间
|
|
||||||
addNew.set("yem_pennsylvania", null);
|
|
||||||
// 备注
|
|
||||||
addNew.set("yem_comment", entity.get("yem_contremark"));
|
|
||||||
SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
|
|
||||||
SalesOrderUtils.calcCreditAmount(dynamicObject.getLong("id"));
|
|
||||||
}
|
}
|
||||||
|
;
|
||||||
|
// 配件客商额度申请单 - 分录
|
||||||
|
DynamicObjectCollection collection = dynamicObject.getDynamicObjectCollection("yem_im_entryentity_m");
|
||||||
|
|
||||||
|
// 删除旧的数据,保证相同合同数据只有一条
|
||||||
|
Iterator<DynamicObject> iterator = collection.iterator();
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
DynamicObject next = iterator.next();
|
||||||
|
long constractId = next.getLong("yem_cn.id");
|
||||||
|
if (constractId == entity.getLong("id")) {
|
||||||
|
iterator.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DynamicObject addNew = collection.addNew();
|
||||||
|
// 合同号 - 基本信息-外销合同号
|
||||||
|
addNew.set("yem_cn", entity.get("id"));
|
||||||
|
// 合同币别 - 财务信息-结算币别
|
||||||
|
addNew.set("yem_currencyfield", entity.get("yem_currency"));
|
||||||
|
// 合同占用金额 - 基本信息-配件客商/借记额度
|
||||||
|
addNew.set("yem_sum", debitamount);
|
||||||
|
// 合同占用金额RMB - 配件客商/借记额度 * 财务信息-汇率
|
||||||
|
addNew.set("yem_localsum", debitamount.multiply(entity.getBigDecimal("yem_exrate")));
|
||||||
|
// 核销金额
|
||||||
|
addNew.set("yem_writtenamt", null);
|
||||||
|
// 核销金额RMB
|
||||||
|
addNew.set("yem_locwrittenamt", null);
|
||||||
|
// 发货时间 - 基本信息-预计发货时间
|
||||||
|
addNew.set("yem_deliverytime", acshipdate);
|
||||||
|
// 最晚还款时间 - 预计发货时间的下个月14号
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
calendar.setTime(acshipdate);
|
||||||
|
calendar.add(Calendar.MONTH, 1);
|
||||||
|
calendar.set(Calendar.DAY_OF_MONTH, 14);
|
||||||
|
addNew.set("yem_optimaltime", calendar.getTime());
|
||||||
|
// 实际还款时间
|
||||||
|
addNew.set("yem_pennsylvania", null);
|
||||||
|
// 备注
|
||||||
|
addNew.set("yem_comment", entity.get("yem_contremark"));
|
||||||
|
SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
|
||||||
|
SalesOrderUtils.calcCreditAmount(dynamicObject.getLong("id"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user