入库单优化

This commit is contained in:
xuhaihui 2025-10-20 15:19:23 +08:00
parent 3b2f145c47
commit c286a55d19
3 changed files with 36 additions and 12 deletions

View File

@ -414,10 +414,10 @@ public class MaterialInBillEditPluginExt extends AbstractEcmaBillPlugin implemen
}
public void fieldLockLogic() {
boolean isAdjustamount = this.getModel().getDataEntity().getBoolean("adjustamount");
boolean isAdjustoftax = this.getModel().getDataEntity().getBoolean("adjustoftax");
boolean isInputtaxprice = this.getModel().getDataEntity().getBoolean("inputtaxprice");
boolean isInputtotalprice = this.getModel().getDataEntity().getBoolean("inputtotalprice");
boolean isAdjustamount = this.getModel().getDataEntity().getBoolean("adjustamount");//微调金额
boolean isAdjustoftax = this.getModel().getDataEntity().getBoolean("adjustoftax");//微调税额
boolean isInputtaxprice = this.getModel().getDataEntity().getBoolean("inputtaxprice");//录入含税价
boolean isInputtotalprice = this.getModel().getDataEntity().getBoolean("inputtotalprice");//录入总价
DynamicObjectCollection entryentity = this.getView().getModel().getEntryEntity("entryentity");
if (entryentity.size() >= 1) {
int i;
@ -467,8 +467,8 @@ public class MaterialInBillEditPluginExt extends AbstractEcmaBillPlugin implemen
protected void initFormPage(int rowIndex) {
/* this.getView().setEnable(true, rowIndex, new String[]{"lot", "lotid", "measureunit", "entrytaxrate", "price", "ismainmaterial"});
this.getView().setEnable(false, rowIndex, new String[]{"taxprice", "taxamount", "contprice", "oftaxamount", "notaxamount"});//系统源码*/
this.getView().setEnable(true, rowIndex, new String[]{"lot", "lotid", "measureunit", "entrytaxrate", "ismainmaterial", "notaxamount"});//二开修改添加金额字段去除入库单价
this.getView().setEnable(false, rowIndex, new String[]{"taxprice", "taxamount", "contprice", "price", "oftaxamount"});//二开修改去除金额字段添加入库单价
this.getView().setEnable(true, rowIndex, new String[]{"lot", "lotid", "measureunit", "entrytaxrate", "price","ismainmaterial", "notaxamount"});//二开修改添加金额字段
this.getView().setEnable(false, rowIndex, new String[]{"taxprice", "taxamount", "contprice", "oftaxamount"});//二开修改去除金额字段
Boolean poundIn = (Boolean) this.getModel().getValue("poundin");
this.getView().setEnable(!poundIn, rowIndex, new String[]{"material", "modelnum", "qty"});
}

View File

@ -5,6 +5,8 @@ import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.metadata.dynamicobject.DynamicObjectType;
import kd.bos.dataentity.resource.ResManager;
import kd.bos.entity.datamodel.RowDataEntity;
import kd.bos.entity.datamodel.events.AfterAddRowEventArgs;
import kd.bos.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.form.*;
@ -70,6 +72,24 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement
}
}
public void afterAddRow(AfterAddRowEventArgs e) {
super.afterAddRow(e);
String entryName = e.getEntryProp().getName();//新增行单据体名
if ("entryentity".equals(entryName)) {
//入库单明细-新增行
Object invoice_type = this.getModel().getValue("zcgj_invoice_type");//发票类型
if (invoice_type != null && invoice_type.equals("0")) {
DynamicObject bd_taxrate = BusinessDataServiceHelper.loadSingle("bd_taxrate",
new QFilter[]{new QFilter("number", QCP.equals, "V0")});//税率-默认增值税0
RowDataEntity[] rowDataEntities = e.getRowDataEntities();
for (RowDataEntity rowDataEntity : rowDataEntities) {
int rowIndex = rowDataEntity.getRowIndex();
this.getModel().setValue("entrytaxrate", bd_taxrate, rowIndex);//入库单明细-税率
}
}
}
}
@Override
public void propertyChanged(PropertyChangedArgs e) {
super.propertyChanged(e);
@ -192,11 +212,11 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement
this.getView().updateView("transoftaxamount");
this.getView().updateView("totaloftaxamount");
this.getModel().endInit();
} else if ("oftaxamount".equals(key)) {
//入库单明细-含税金额
} else if ("oftaxamount".equals(key) || "taxprice".equals(key)) {
//入库单明细-含税金额入库单明细-入库含税单价
boolean inputtaxprice = (boolean) this.getModel().getValue("inputtaxprice");//录入含税价
boolean inputtotalprice = (boolean) this.getModel().getValue("inputtotalprice");//录入总价
if (inputtaxprice && inputtotalprice) {
if ((inputtaxprice && inputtotalprice) || ("taxprice".equals(key) && inputtaxprice)) {
BigDecimal matAmount = (BigDecimal) this.getModel().getValue("matamount");//材料总金额
BigDecimal transAmount = (BigDecimal) this.getModel().getValue("transamount");//总运费
BigDecimal totalAmount = matAmount.add(transAmount);

View File

@ -44,6 +44,7 @@ public class MaterialInBillSubmitValidatorOp extends AbstractOperationServicePlu
DynamicObject ecma_MaterialInBill = extendedDataEntity.getDataEntity();
DynamicObjectCollection entryEntityCollection = ecma_MaterialInBill.getDynamicObjectCollection("zcgj_entryentity");//合同进项发票信息
DynamicObjectCollection entryEntity2Collection = ecma_MaterialInBill.getDynamicObjectCollection("entryentity");//入库单分录
String invoice_type = ecma_MaterialInBill.getString("zcgj_invoice_type");//发票类型
if (entryEntityCollection != null && entryEntityCollection.size() > 0 && entryEntity2Collection != null && entryEntity2Collection.size() > 0) {
BigDecimal totalInvoiceAmount = BigDecimal.ZERO; // 发票总金额不含税
@ -83,15 +84,18 @@ public class MaterialInBillSubmitValidatorOp extends AbstractOperationServicePlu
totalEntryTotal = totalEntryTotal.add(oftaxAmount);
}
}*/
if (totalInvoiceTotal.compareTo(totalEntryTotal) != 0) {
this.addFatalErrorMessage(extendedDataEntity, "入库含税总金额与合同进项发票信息价税合计汇总不匹配!");
}
if (invoice_type != null && invoice_type.equals("1")) {
return;
}
if (totalInvoiceAmount.compareTo(totalEntryAmount) != 0) {
this.addFatalErrorMessage(extendedDataEntity, "入库总金额与合同进项发票信息金额汇总不匹配!");
}
if (totalInvoiceTax.compareTo(totalEntryTax) != 0) {
this.addFatalErrorMessage(extendedDataEntity, "税额与合同进项发票信息税额汇总不匹配!");
}
if (totalInvoiceTotal.compareTo(totalEntryTotal) != 0) {
this.addFatalErrorMessage(extendedDataEntity, "入库含税总金额与合同进项发票信息价税合计汇总不匹配!");
}
}
}
}