fix:外销合同变更单报错处理
This commit is contained in:
parent
38f4e83d30
commit
d1702c914c
@ -71,106 +71,113 @@ public class SalesOrderSubmitOp extends AbstractOperationServicePlugIn {
|
||||
super.afterExecuteOperationTransaction(e);
|
||||
DynamicObject[] eDataEntities = e.getDataEntities();
|
||||
for (DynamicObject eDataEntity : eDataEntities) {
|
||||
DynamicObjectCollection yemEsMaterialinfo = eDataEntity.getDynamicObjectCollection("yem_es_materialinfo");
|
||||
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);
|
||||
long aLong = eDataEntity.getLong("id");
|
||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("yem_es_salesorder", "id,billno,yem_es_materialinfo" +
|
||||
",yem_es_materialinfo.yem_multiconfig,yem_es_materialinfo.yem_optional,yem_multiconfig.yem_configurtypeen"
|
||||
, new QFilter[]{new QFilter("id", QCP.equals, aLong)});
|
||||
if (dynamicObject != null) {
|
||||
DynamicObjectCollection yemEsMaterialinfo = dynamicObject.getDynamicObjectCollection("yem_es_materialinfo");
|
||||
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
|
||||
*/
|
||||
public void updatePartsmerchant (EndOperationTransactionArgs e){
|
||||
String operationKey = e.getOperationKey();
|
||||
DynamicObject[] entities = e.getDataEntities();
|
||||
for (DynamicObject entity : entities) {
|
||||
String fundusetype = entity.getString("yem_fundusetype");
|
||||
if (!"A".equals(fundusetype)) {
|
||||
return;
|
||||
}
|
||||
// 公司
|
||||
long orgId = entity.getLong("org.id");
|
||||
// 客户ID
|
||||
long customerId = entity.getLong("yem_customer.id");
|
||||
// 产品分类
|
||||
long productsId = entity.getLong("yem_bd_products.id");
|
||||
// 结算币别
|
||||
long currency = entity.getLong("yem_currency.id");
|
||||
// 配件客商/借记额度
|
||||
BigDecimal debitamount = entity.getBigDecimal("yem_debitamount");
|
||||
// 预计发货时间
|
||||
Date acshipdate = entity.getDate("yem_acshipdate");
|
||||
// 业务组织 = 公司
|
||||
QFilter qFilters = new QFilter("org.id", QCP.equals, orgId);
|
||||
// 客户名称 = 客户名称
|
||||
qFilters.and(new QFilter("yem_client.id", QCP.equals, customerId));
|
||||
// 产品分类 = 产品分类
|
||||
qFilters.and(new QFilter("yem_productcategorie", QCP.equals, productsId));
|
||||
// 单据状态 = 已审核
|
||||
qFilters.and(new QFilter("billstatus", QCP.equals, "C"));
|
||||
// 合同上结算币别 = 额度申请上 额度币别
|
||||
qFilters.and(new QFilter("yem_currency.id", QCP.equals, currency));
|
||||
// 日期降序
|
||||
/**
|
||||
* 更新配件客商额度申请单据
|
||||
*
|
||||
* @param e
|
||||
*/
|
||||
public void updatePartsmerchant(EndOperationTransactionArgs e) {
|
||||
String operationKey = e.getOperationKey();
|
||||
DynamicObject[] entities = e.getDataEntities();
|
||||
for (DynamicObject entity : entities) {
|
||||
String fundusetype = entity.getString("yem_fundusetype");
|
||||
if (!"A".equals(fundusetype)) {
|
||||
return;
|
||||
}
|
||||
// 公司
|
||||
long orgId = entity.getLong("org.id");
|
||||
// 客户ID
|
||||
long customerId = entity.getLong("yem_customer.id");
|
||||
// 产品分类
|
||||
long productsId = entity.getLong("yem_bd_products.id");
|
||||
// 结算币别
|
||||
long currency = entity.getLong("yem_currency.id");
|
||||
// 配件客商/借记额度
|
||||
BigDecimal debitamount = entity.getBigDecimal("yem_debitamount");
|
||||
// 预计发货时间
|
||||
Date acshipdate = entity.getDate("yem_acshipdate");
|
||||
// 业务组织 = 公司
|
||||
QFilter qFilters = new QFilter("org.id", QCP.equals, orgId);
|
||||
// 客户名称 = 客户名称
|
||||
qFilters.and(new QFilter("yem_client.id", QCP.equals, customerId));
|
||||
// 产品分类 = 产品分类
|
||||
qFilters.and(new QFilter("yem_productcategorie", QCP.equals, productsId));
|
||||
// 单据状态 = 已审核
|
||||
qFilters.and(new QFilter("billstatus", QCP.equals, "C"));
|
||||
// 合同上结算币别 = 额度申请上 额度币别
|
||||
qFilters.and(new QFilter("yem_currency.id", QCP.equals, currency));
|
||||
// 日期降序
|
||||
// qFilters.and(new QFilter("yem_bizdate", QCP.equals));
|
||||
if ("submit".equals(operationKey)) {
|
||||
// 根据组织+客户+产品分类,查询 配件客商额度申请单
|
||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("yem_im_partsmerchant", qFilters.toArray());
|
||||
if ("submit".equals(operationKey)) {
|
||||
// 根据组织+客户+产品分类,查询 配件客商额度申请单
|
||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("yem_im_partsmerchant", qFilters.toArray());
|
||||
|
||||
if (dynamicObject == null) {
|
||||
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"));
|
||||
if (dynamicObject == null) {
|
||||
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"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user