|
@@ -1,11 +1,8 @@
|
|
package fi.er.opplugin;
|
|
package fi.er.opplugin;
|
|
|
|
|
|
import com.alibaba.druid.util.StringUtils;
|
|
import com.alibaba.druid.util.StringUtils;
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
|
-import com.grapecity.documents.excel.B;
|
|
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
-import kd.bos.dataentity.serialization.SerializationUtils;
|
|
|
|
import kd.bos.entity.datamodel.events.ChangeData;
|
|
import kd.bos.entity.datamodel.events.ChangeData;
|
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
|
import kd.bos.form.field.RefBillEdit;
|
|
import kd.bos.form.field.RefBillEdit;
|
|
@@ -16,8 +13,6 @@ import kd.bos.list.ListShowParameter;
|
|
import kd.bos.orm.query.QCP;
|
|
import kd.bos.orm.query.QCP;
|
|
import kd.bos.orm.query.QFilter;
|
|
import kd.bos.orm.query.QFilter;
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
-import scala.Int;
|
|
|
|
-
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
@@ -73,73 +68,41 @@ public class FinapbillBeforeF7SelectSample extends AbstractFormPlugin implements
|
|
if (StringUtils.equals("nckd_real_card", fieldKey)){
|
|
if (StringUtils.equals("nckd_real_card", fieldKey)){
|
|
ChangeData changeData = e.getChangeSet()[0];
|
|
ChangeData changeData = e.getChangeSet()[0];
|
|
DynamicObjectCollection dynamicObjectCollection = (DynamicObjectCollection) changeData.getNewValue();
|
|
DynamicObjectCollection dynamicObjectCollection = (DynamicObjectCollection) changeData.getNewValue();
|
|
- List<Long> ids = new ArrayList<>();
|
|
|
|
- Integer index = 0;
|
|
|
|
- for(DynamicObject object : dynamicObjectCollection) {
|
|
|
|
- Long id = (Long) object.get(2);
|
|
|
|
- ids.add(id);
|
|
|
|
|
|
+ int parentIndex = changeData.getRowIndex();
|
|
|
|
+ this.getModel().deleteEntryData("nckd_realcard_list2");
|
|
|
|
+ for (int i = 0; i < dynamicObjectCollection.size(); i++) {
|
|
|
|
+ DynamicObject object = dynamicObjectCollection.get(i);
|
|
this.getModel().setValue("nckd_card_list_str","1");
|
|
this.getModel().setValue("nckd_card_list_str","1");
|
|
- }
|
|
|
|
- //查询实物卡片清单
|
|
|
|
- QFilter filter = new QFilter("id", QCP.in,ids);
|
|
|
|
- DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
|
|
|
|
- if (dynamicObjects.length > 0) {
|
|
|
|
- this.getModel().deleteEntryData("nckd_realcard_list");
|
|
|
|
- for (int i = 0; i < dynamicObjects.length; i++) {
|
|
|
|
- DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
|
|
|
|
- String number = info.getString("number");//资产编码
|
|
|
|
- String name = info.getString("name");//资产名称
|
|
|
|
- String nckd_card_type = info.getString("nckd_card_type");//资产类别
|
|
|
|
- String nckd_card_status = info.getString("nckd_card_status");//资产状态
|
|
|
|
- DynamicObject nckd_orgfield = info.getDynamicObject("nckd_orgfield");//归属机构
|
|
|
|
- DynamicObject nckd_dept = info.getDynamicObject("nckd_dept");//归属部门
|
|
|
|
- String nckd_use_name = info.getString("nckd_use_name");//使用人
|
|
|
|
- Date nckd_start_date = info.getDate("nckd_start_date");//开始使用日期
|
|
|
|
- String nckd_local = info.getString("nckd_local");//存放地点
|
|
|
|
- String nckd_card_brand = info.getString("nckd_card_brand");//品牌
|
|
|
|
- String nckd_card_model = info.getString("nckd_card_model");//型号
|
|
|
|
- String nckd_serial_number = info.getString("nckd_serial_number");//序列号
|
|
|
|
-
|
|
|
|
- //实物卡片清单分录赋值
|
|
|
|
- int rowIndex = this.getModel().createNewEntryRow("nckd_realcard_list");
|
|
|
|
-
|
|
|
|
- this.getModel().setValue("nckd_card_code",number,rowIndex);
|
|
|
|
- this.getModel().setValue("nckd_card_name",name,rowIndex);
|
|
|
|
- this.getModel().setValue("nckd_card_type",nckd_card_type,rowIndex);
|
|
|
|
- this.getModel().setValue("nckd_card_status",nckd_card_status,rowIndex);
|
|
|
|
- this.getModel().setValue("nckd_orgfield",nckd_orgfield,rowIndex);
|
|
|
|
- this.getModel().setValue("nckd_dept",nckd_dept,rowIndex);
|
|
|
|
- this.getModel().setValue("nckd_use_name",nckd_use_name,rowIndex);
|
|
|
|
- this.getModel().setValue("nckd_start_date",nckd_start_date,rowIndex);
|
|
|
|
- this.getModel().setValue("nckd_local",nckd_local,rowIndex);
|
|
|
|
- this.getModel().setValue("nckd_card_brand",nckd_card_brand,rowIndex);
|
|
|
|
- this.getModel().setValue("nckd_card_model",nckd_card_model,rowIndex);
|
|
|
|
- this.getModel().setValue("nckd_serial_number",nckd_serial_number,rowIndex);
|
|
|
|
-
|
|
|
|
- if (index.equals(0)) {
|
|
|
|
- //资产信息分录赋值
|
|
|
|
- this.getModel().setValue("asset_name",name);
|
|
|
|
- //资产类别赋值
|
|
|
|
- //规格型号
|
|
|
|
- this.getModel().setValue("asset_model",nckd_card_model);
|
|
|
|
- //使用部门
|
|
|
|
- this.getModel().setValue("asset_costdept",nckd_dept);
|
|
|
|
- //使用人
|
|
|
|
- //根据姓名name查询用户,工号是number
|
|
|
|
- QFilter userFilter = new QFilter("name", QCP.equals,nckd_use_name);
|
|
|
|
- DynamicObject[] userDynamicObjects = BusinessDataServiceHelper.load("bos_user","id",new QFilter[] {userFilter});
|
|
|
|
- for (int d=0;d<userDynamicObjects.length;d++) {
|
|
|
|
- DynamicObject userInfo = BusinessDataServiceHelper.loadSingle(userDynamicObjects[i].getPkValue(), userDynamicObjects[i].getDynamicObjectType().getName());
|
|
|
|
- this.getModel().setValue("asset_user",userInfo);
|
|
|
|
- }
|
|
|
|
- //存放地点
|
|
|
|
|
|
+ //实物卡片清单分录赋值
|
|
|
|
+ DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(object.get(2), "nckd_fa_card_real_list");
|
|
|
|
+ int rowIndex = this.getModel().createNewEntryRow("nckd_realcard_list2");
|
|
|
|
+ this.getModel().setValue("nckd_card_code2",cardInfo,rowIndex,parentIndex);
|
|
|
|
+ if (i == 0) {
|
|
|
|
+ String name = cardInfo.getString("name");//资产名称
|
|
|
|
+ DynamicObject nckd_dept = cardInfo.getDynamicObject("nckd_dept");//归属部门
|
|
|
|
+ String nckd_use_name = cardInfo.getString("nckd_use_name");//使用人
|
|
|
|
+ String nckd_local = cardInfo.getString("nckd_local");//存放地点
|
|
|
|
+ String nckd_card_model = cardInfo.getString("nckd_card_model");//型号
|
|
|
|
+ //资产信息分录赋值
|
|
|
|
+ this.getModel().setValue("asset_name", name, parentIndex);
|
|
|
|
+ //资产类别赋值
|
|
|
|
+ //规格型号
|
|
|
|
+ this.getModel().setValue("asset_model",nckd_card_model, parentIndex);
|
|
|
|
+ //使用部门
|
|
|
|
+ this.getModel().setValue("asset_costdept",nckd_dept, parentIndex);
|
|
|
|
+ //使用人
|
|
|
|
+ QFilter userFilter = new QFilter("number", QCP.equals,nckd_use_name);
|
|
|
|
+ DynamicObject[] userDynamicObjects = BusinessDataServiceHelper.load("bos_user","id",new QFilter[] {userFilter});
|
|
|
|
+ for (int d=0;d<userDynamicObjects.length;d++) {
|
|
|
|
+ DynamicObject userInfo = BusinessDataServiceHelper.loadSingle(userDynamicObjects[i].getPkValue(), userDynamicObjects[i].getDynamicObjectType().getName());
|
|
|
|
+ this.getModel().setValue("asset_user",userInfo, parentIndex);
|
|
}
|
|
}
|
|
- index++;
|
|
|
|
|
|
+ //存放地点
|
|
|
|
+ this.getModel().setValue("nckd_storeplace",nckd_local, parentIndex);
|
|
}
|
|
}
|
|
- //刷新实物卡片清单分录
|
|
|
|
- this.getView().updateView("nckd_realcard_list");
|
|
|
|
- this.getView().updateView("assetentry");
|
|
|
|
}
|
|
}
|
|
|
|
+ //刷新实物卡片清单分录
|
|
|
|
+ this.getView().updateView("assetentry");
|
|
} else if (StringUtils.equals("nckd_apfinapbill", fieldKey)) {
|
|
} else if (StringUtils.equals("nckd_apfinapbill", fieldKey)) {
|
|
ChangeData changeData = e.getChangeSet()[0];
|
|
ChangeData changeData = e.getChangeSet()[0];
|
|
DynamicObject dynamicObject = (DynamicObject) changeData.getNewValue();
|
|
DynamicObject dynamicObject = (DynamicObject) changeData.getNewValue();
|
|
@@ -209,29 +172,32 @@ public class FinapbillBeforeF7SelectSample extends AbstractFormPlugin implements
|
|
//刷新资产信息分录
|
|
//刷新资产信息分录
|
|
this.getView().updateView("assetentry");
|
|
this.getView().updateView("assetentry");
|
|
} else if (StringUtils.equals("expenseamount", fieldKey) || StringUtils.equals("nckd_amountfield3", fieldKey)) {
|
|
} else if (StringUtils.equals("expenseamount", fieldKey) || StringUtils.equals("nckd_amountfield3", fieldKey)) {
|
|
- ChangeData changeData = e.getChangeSet()[0];
|
|
|
|
- BigDecimal expenseamount = (BigDecimal) changeData.getNewValue();
|
|
|
|
- this.getModel().setValue("nckd_amountfield3", expenseamount);//含税单价
|
|
|
|
-
|
|
|
|
- //含税金额 = 含税单价*数量
|
|
|
|
- BigDecimal asset_quantity = (BigDecimal) this.getModel().getValue("asset_quantity");
|
|
|
|
- BigDecimal assetexpenseamount = expenseamount.multiply(asset_quantity);
|
|
|
|
- this.getModel().setValue("assetexpenseamount", assetexpenseamount);
|
|
|
|
-
|
|
|
|
- //不含税单价 = 含税单价/(1+税率)
|
|
|
|
- BigDecimal assettaxrate = (BigDecimal) this.getModel().getValue("assettaxrate");
|
|
|
|
- assettaxrate = assettaxrate.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
|
|
|
|
- BigDecimal rate = assettaxrate.add(BigDecimal.ONE);
|
|
|
|
- BigDecimal assetpricewithouttax = expenseamount.divide(rate, 2 , RoundingMode.HALF_UP);
|
|
|
|
- this.getModel().setValue("assetpricewithouttax", assetpricewithouttax);
|
|
|
|
-
|
|
|
|
- //不含税金额 = 不含税单价*数量
|
|
|
|
- BigDecimal assetorientryamount = assetpricewithouttax.multiply(asset_quantity);
|
|
|
|
- this.getModel().setValue("assetorientryamount", assetorientryamount);
|
|
|
|
-
|
|
|
|
- //税额 = 含税金额-不含税金额
|
|
|
|
- BigDecimal assettaxamount = assetexpenseamount.subtract(assetorientryamount);
|
|
|
|
- this.getModel().setValue("assettaxamount", assettaxamount);
|
|
|
|
|
|
+ String reimbursetype = (String) this.getModel().getValue("reimbursetype");
|
|
|
|
+ if("asset".equals(reimbursetype)) {
|
|
|
|
+ ChangeData changeData = e.getChangeSet()[0];
|
|
|
|
+ BigDecimal expenseamount = (BigDecimal) changeData.getNewValue();
|
|
|
|
+ this.getModel().setValue("nckd_amountfield3", expenseamount);//含税单价
|
|
|
|
+
|
|
|
|
+ //含税金额 = 含税单价*数量
|
|
|
|
+ BigDecimal asset_quantity = (BigDecimal) this.getModel().getValue("asset_quantity");
|
|
|
|
+ BigDecimal assetexpenseamount = expenseamount.multiply(asset_quantity);
|
|
|
|
+ this.getModel().setValue("assetexpenseamount", assetexpenseamount);
|
|
|
|
+
|
|
|
|
+ //不含税单价 = 含税单价/(1+税率)
|
|
|
|
+ BigDecimal assettaxrate = (BigDecimal) this.getModel().getValue("assettaxrate");
|
|
|
|
+ assettaxrate = assettaxrate.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
|
|
|
|
+ BigDecimal rate = assettaxrate.add(BigDecimal.ONE);
|
|
|
|
+ BigDecimal assetpricewithouttax = expenseamount.divide(rate, 2 , RoundingMode.HALF_UP);
|
|
|
|
+ this.getModel().setValue("assetpricewithouttax", assetpricewithouttax);
|
|
|
|
+
|
|
|
|
+ //不含税金额 = 不含税单价*数量
|
|
|
|
+ BigDecimal assetorientryamount = assetpricewithouttax.multiply(asset_quantity);
|
|
|
|
+ this.getModel().setValue("assetorientryamount", assetorientryamount);
|
|
|
|
+
|
|
|
|
+ //税额 = 含税金额-不含税金额
|
|
|
|
+ BigDecimal assettaxamount = assetexpenseamount.subtract(assetorientryamount);
|
|
|
|
+ this.getModel().setValue("assettaxamount", assettaxamount);
|
|
|
|
+ }
|
|
} else if (StringUtils.equals("taxrate", fieldKey) || StringUtils.equals("assettaxrate", fieldKey)) {
|
|
} else if (StringUtils.equals("taxrate", fieldKey) || StringUtils.equals("assettaxrate", fieldKey)) {
|
|
ChangeData changeData = e.getChangeSet()[0];
|
|
ChangeData changeData = e.getChangeSet()[0];
|
|
BigDecimal assettaxrate = (BigDecimal) changeData.getNewValue();
|
|
BigDecimal assettaxrate = (BigDecimal) changeData.getNewValue();
|
|
@@ -263,6 +229,7 @@ public class FinapbillBeforeF7SelectSample extends AbstractFormPlugin implements
|
|
public void afterCreateNewData(EventObject e) {
|
|
public void afterCreateNewData(EventObject e) {
|
|
//报账类型
|
|
//报账类型
|
|
String reimbursetype = (String) this.getModel().getValue("reimbursetype");
|
|
String reimbursetype = (String) this.getModel().getValue("reimbursetype");
|
|
|
|
+ int rowIndex = this.getModel().createNewEntryRow("assetentry");
|
|
if("asset".equals(reimbursetype)){
|
|
if("asset".equals(reimbursetype)){
|
|
//获取费用明细分录
|
|
//获取费用明细分录
|
|
DynamicObjectCollection assetentry = this.getModel().getEntryEntity("expenseentryentity");
|
|
DynamicObjectCollection assetentry = this.getModel().getEntryEntity("expenseentryentity");
|
|
@@ -271,7 +238,6 @@ public class FinapbillBeforeF7SelectSample extends AbstractFormPlugin implements
|
|
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("er_expenseitemedit","id",new QFilter[] {filter});
|
|
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("er_expenseitemedit","id",new QFilter[] {filter});
|
|
DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[0].getPkValue(), dynamicObjects[0].getDynamicObjectType().getName());
|
|
DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[0].getPkValue(), dynamicObjects[0].getDynamicObjectType().getName());
|
|
this.getModel().setValue("expenseitem", info, 0);
|
|
this.getModel().setValue("expenseitem", info, 0);
|
|
- int rowIndex = this.getModel().createNewEntryRow("assetentry");
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|