Compare commits

...

3 Commits

Author SHA1 Message Date
zhangzhiguo 67778668f7 对公报销单和无合同付款申请单校验 2025-09-17 17:09:35 +08:00
zhangzhiguo c7ea54355d 发票导入问题处理 2025-09-17 17:09:17 +08:00
zhangzhiguo eb3237e9ed 对公报销单付款人类型处理 2025-09-17 17:08:53 +08:00
4 changed files with 45 additions and 7 deletions

View File

@ -42,7 +42,7 @@ public class CostcompanyDefaultPlugin extends AbstractBillPlugIn implements Plu
String billFormId = ((BillView) this.getView()).getFormId();
//如果是新增时
BillShowParameter bsp=(BillShowParameter)this.getView().getFormShowParameter();
if(bsp.getStatus()== OperationStatus.ADDNEW ){
//if(bsp.getStatus()== OperationStatus.ADDNEW ){
if("er_dailyreimbursebill".equals(billFormId)) {
//隐藏费用报销单收款信息收款人类型为供应商和客户的选项
Object company = this.getModel().getValue("costcompany");//核算组织
@ -74,7 +74,7 @@ public class CostcompanyDefaultPlugin extends AbstractBillPlugIn implements Plu
}
}
}
}
// }
}
@Override

View File

@ -24,12 +24,16 @@ public class PublicBillRecAccountCkOp extends AbstractOperationServicePlugIn {
@Override
public void onPreparePropertys(PreparePropertysEventArgs e) {
super.onPreparePropertys(e);
e.getFieldKeys().add("zcgj_isec");//工程单据 如果是工程单据则需要判断付款方式为DG才需要判断账户一致性
e.getFieldKeys().add("costcompany");
e.getFieldKeys().add("accountentry");
e.getFieldKeys().add("billpayerid");//往来单位
e.getFieldKeys().add("zcgj_ecpaytype");//付款方式
e.getFieldKeys().add("zcgj_prepay");//冲销预付
e.getFieldKeys().add("writeoffmoney");//冲销预付
}
@Override
@ -57,6 +61,13 @@ public class PublicBillRecAccountCkOp extends AbstractOperationServicePlugIn {
for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) {
DynamicObject dataEntity = extendedDataEntity.getDataEntity();
DynamicObject billPayerId = dataEntity.getDynamicObject("billpayerid");//往来单位
String ecpaytype = dataEntity.getString("zcgj_ecpaytype");//付款方式
boolean isec = dataEntity.getBoolean("zcgj_isec");//付款方式
boolean ckType = true;
if(isec){
ckType = "DG".equals(ecpaytype); //如果是无合同付款中的付款方式为 对公则需要校验
}
long aLong = dataEntity.getLong("id");
//获取报销人
DynamicObject applier = dataEntity.getDynamicObject("applier");
@ -84,7 +95,12 @@ public class PublicBillRecAccountCkOp extends AbstractOperationServicePlugIn {
continue;
}
String name = supplier.getString("name");
isOk = payeraccountname.equals(name);
if(ckType){
String billPayerIdName = billPayerId.getString("name");
isOk = payeraccountname.equals(name) && payeraccountname.equals(billPayerIdName);
}else{
isOk = payeraccountname.equals(name);
}
}else if("bd_customer".equals(payertype)){ //客户
DynamicObject customer = dynamicObject.getDynamicObject("customer");
if(customer ==null){
@ -92,10 +108,28 @@ public class PublicBillRecAccountCkOp extends AbstractOperationServicePlugIn {
continue;
}
String name = customer.getString("name");
if(ckType){
String billPayerIdName = billPayerId.getString("name");
isOk = payeraccountname.equals(name) && payeraccountname.equals(billPayerIdName);
}else{
isOk = payeraccountname.equals(name);
}
}else if("er_payeer".equals(payertype)){ //职员
DynamicObject payer = dynamicObject.getDynamicObject("payer");
if(payer ==null){
this.addFatalErrorMessage(extendedDataEntity, String.format("收款信息第%d行收款人不能为空",i));
continue;
}
String name = payer.getString("name");
isOk = payeraccountname.equals(name);
}
if(!isOk && accountTxt.isEmpty()){
this.addFatalErrorMessage(extendedDataEntity, String.format("收款信息第%d行收款人名称和账户名称不一致请在当前行填写账户不一致说明",i));
if(ckType){//带往来单位
this.addFatalErrorMessage(extendedDataEntity, String.format("收款信息第%d行往来单位与收款人名称和账户名称不一致请在当前行填写账户不一致说明",i));
}else{
this.addFatalErrorMessage(extendedDataEntity, String.format("收款信息第%d行收款人名称和账户名称不一致请在当前行填写账户不一致说明",i));
}
}
}

View File

@ -22,6 +22,9 @@ public class PublicReimburPayerSubOp extends AbstractOperationServicePlugIn {
e.getFieldKeys().add("zcgj_invoiceremark");
e.getFieldKeys().add("makeoutcompname");
e.getFieldKeys().add("costcompany");
//无合同付款相关
e.getFieldKeys().add("zcgj_isec");//工程单据
//e.getFieldKeys().add("zcgj_ecpaytype");//付款方式
}
@Override
@ -37,7 +40,8 @@ public class PublicReimburPayerSubOp extends AbstractOperationServicePlugIn {
for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) {
DynamicObject dataEntity = extendedDataEntity.getDataEntity();
DynamicObject costCompany = dataEntity.getDynamicObject("costcompany");//费用承担公司
if (costCompany != null) {
boolean isec = dataEntity.getBoolean("zcgj_isec");
if (costCompany != null && !isec) {
Long companyId = costCompany.getLong("id");
if (OrgCheckUtils.isKS(companyId)) {
//仅针对矿山下组织下的逻辑

View File

@ -186,7 +186,7 @@ public class MaintenanceAckBillPlugin extends AbstractBillPlugIn implements Plug
DynamicObject org = (DynamicObject) this.getModel().getValue("zcgj_accountorg");
//List<InvoiceVO> invoiceVOList = InvoiceDataHandleHelper.parseXhInvoiceCloudReturnData(returnData);
List<InvoiceVO> invoiceVOList = CustomInvoiceDataHandleHelper.parseXhInvoiceCloudReturnData(returnData);
Map<Boolean, Set<DynamicObject>> invoiceMap = InvoiceDataHandleHelper.processInvoiceVO(invoiceVOList, RequestContext.get().getCurrUserId(),
Map<Boolean, Set<DynamicObject>> invoiceMap = CustomInvoiceDataHandleHelper.processInvoiceVO(invoiceVOList, RequestContext.get().getCurrUserId(),
org.getLong("id"), new Date(), "ec_in_invoice", (DynamicObject) this.getModel().getValue("zcgj_currency"), true);
ImportInvoiceUtils invoiceUtils = new ImportInvoiceUtils(this.getView(), this.getPageCache());
this.addInvoiceToEntry(invoiceUtils, invoiceMap);