EAS Cloud 税务管理二开扩展

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

EAS Cloud 税务管理二开扩展

# 一、开票流程 应收单 -> 开票单 业务单据 -> 开票申请单 -> 开票单 ![image20210623192002648.webp](/download/0100bf24fad30c8943a2916980f0b086adc3.webp) 开票过程: 发起:com.kingdee.eas.tm.im.app.IMInvoiceFacadeControllerBean#_makeInvoice ![图片1.webp](/download/010043716028759f4bdc9673b146e4f7aba2.webp) # 二、二次开发扩展类 提供了一个二开扩展类,负责应收单/开票申请单到开票单的扩展,需要二次开发同事反编译类,以私包方式部署到EAS服务器。 ``` com.kingdee.eas.tm.im.TaxManageCustomerImpl ``` | 方法名 | 方法描述 | 参数 | 返回值 | | -------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ---------------------------------------- | | getMakeInvoiceInfo | 根据开票组织id获取开票销方信息 | Context ctx, String makeOrgID | CompanyOrgUnitInfo | | beforSetCustomerInfo | 设置客户信息(前置) | Context ctx, MakeInvoiceInfo invoice, BillReqInfo billReq | | | overrideSetCustomerInfo | 设置客户信息(二开) | Context ctx, MakeInvoiceInfo invoice, BillReqInfo billReq | boolean
true走二开实现,false标准实现 | | afterCutsomerInfo | 设置客户信息(后置) | | | | beforSetInvoiceOrgId | 设置开票组织(前置) | MakeInvoiceInfo invoice, BillReqInfo billReq | | | overrideSetInvoiceOrgId | 设置开票组织(二开) | MakeInvoiceInfo invoice, BillReqInfo billReq | boolean
true走二开实现,false标准实现 | | afterSetInvoiceOrgId | 设置开票组织(后置) | MakeInvoiceInfo invoice, BillReqInfo billReq | | | beforeSetProduct | 设置商品名称(前置) | Context ctx, MakeInvoiceInfo invoice, BillReqInfo billReq, BillEntryReqInfo entryReq, MakeInvoiceEntryInfo entry | | | overrideSetProduct | 设置商品名称(覆盖) | Context ctx, MakeInvoiceInfo invoice, BillReqInfo billReq, BillEntryReqInfo entryReq, MakeInvoiceEntryInfo entry | boolean
true走二开实现,false标准实现 | | afterSetProduct | 设置商品名称(后置) | Context ctx, MakeInvoiceInfo invoice, BillReqInfo billReq, BillEntryReqInfo entryReq, MakeInvoiceEntryInfo entry | | | getBillReqInfoFromReDevelop | 应收单二开字段,可通过本方法传递到业务单据信息中。再在afterSetInvoiceOrgId中使用。 | BillReqInfo billReq, OtherBillInfo otherBill | | | getBillEntryReqInfoFromReDevelop | 同上,分录数据,配合afterSetProduct使用 | BillEntryReqInfo billEntryReq, OtherBillentryInfo otherBillEntry | | | beforeSetBills | 设置中间单据(前置) | Context ctx ,InvoiceReqInfo req, Map combinBill | | | overrideSetBills | 设置中间单据(二开) | Context ctx ,InvoiceReqInfo req, Map combinBill | boolean
true走二开实现,false标准实现 | | afterSetBills | 设置中间单据(后置) | Context ctx ,InvoiceReqInfo req, Map combinBill | | | | | | | | | | | | # 三、二开案例 ## 案例一:应收单 -> 开票单(增值税) ```java /** * 应收单单头增加二开字段 * * @param billReq 业务单据 * @param otherBill 应收单 * @throws BOSException */ public static void getBillReqInfoFromReDevelop(BillReqInfo billReq, OtherBillInfo otherBill) throws BOSException{ billReq.put("billDep", otherBill.get("billDep")); } /** * 应收单分录增加二开字段 * * @param billEntryReq 业务单据分录 * @param otherBillEntry 应收单分录 * @throws BOSException */ public static void getBillEntryReqInfoFromReDevelop(BillEntryReqInfo billEntryReq, OtherBillentryInfo otherBillEntry) throws BOSException{ billEntryReq.put("billEntryDep",otherBill.get("billEntryDep")); } ``` ```java /** * 应收单单头二开字段传递到开票单 * * @param ctx * @param invoice 开票单 * @param billReq 业务单据 * @throws EASBizException * @throws BOSException */ public static void afterSetInvoiceOrgId (Context ctx, MakeInvoiceInfo invoice, BillReqInfo billReq) throws EASBizException, BOSException{ //这里需要注意billReq来源 是开票申请单还是应收单 if (billReq.get("billDep") != null) { invoice.put("billDep",billReq.get("billDep")); } } /** * 应收单分录二开字段传递到开票单 * @param ctx * @param invoice 开票单 * @param billReq 业务单据 * @param entryReq 业务单据分录 * @param entry 开票单分录 */ public static void afterSetProduct(Context ctx, MakeInvoiceInfo invoice, BillReqInfo billReq, BillEntryReqInfo entryReq, MakeInvoiceEntryInfo entry) { //这里需要注意billReq来源 是开票申请单还是应收单 if(entryReq.get("billEntryDep")!=null){ entry.put("billEntryDep",entryReq.get("billEntryDep"); } } ``` ## 案例二:开票申请单(增值税)-> 开票单(增值税) ```java /** * 开票申请单(增值税)单头二开字段携带到开票单 * * @param ctx * @param invoice 开票单 * @param billReq 业务单据 * @throws EASBizException * @throws BOSException */ public static void afterSetInvoiceOrgId (Context ctx, MakeInvoiceInfo invoice, BillReqInfo billReq) throws EASBizException, BOSException{ //获取开票申请单 如果是开票申请,默认会把值对象放入 objectValue Object value = billReq.getObjectValue(); if(value instanceOf MakeInvoiceReqInfo){ MakeInvoiceReqInfo invoiceReq = (MakeInvoiceReqInfo)value; if (invoiceReq.get("billDep") != null) { invoice.put("billDep",invoiceReq.get("billDep")); } } } ``` 备注:开票申请单(增值税) 分类携带的方法 ,标准扩展方案还没有提供,后续补丁中添加。 临时方案 重写 com.kingdee.eas.tm.im.app.BuildInvoiceReq4NewMKRequest#getBillEntryReqInfo ## 案例三:开票申请单(机动车)-> 开票单(机动车)扩展 机动车开票相关功能扩展,二开继承MakeInvoiceForDepFacade,提供了很多扩展方法。 车辆管理所增加字段扩展: com.kingdee.eas.tm.im.app.MakeInvoiceForDepFacadeControllerBean#_setProductInfo com.kingdee.eas.tm.im.app.MakeInvoiceForDepFacadeControllerBean#_carryVehicleManageInfo (待完善) ## 案例四:反写相关扩展 反写表:T_IM_WriteBackDef,定义了源单到目标单的反写实现类,二开开发可以继承标准的反写实现类实现二开业务逻辑。 分录开票申请相关字段反写: ![image20210624104848423.webp](/download/0100611a4cd8e6ed4451a88a9ded2a9c5dc3.webp) 开票、作废反写: ![image20210624104910009.webp](/download/0100776538e4777c4c22a678bd1ed66175bd.webp) 判断是否需要反写订单 : com.kingdee.eas.tm.im.common.writeback.app.handler.InvoiceReserveUtils#isOrderSupport 反写校验:com.kingdee.eas.tm.im.common.writeback.app.handler.InvoiceReqDisposer#verify(com.kingdee.bos.Context, java.lang.String, java.lang.String) ## 案例五:开票请求扩展 开票请求报文组装类: ``` com.kingdee.eas.tm.im.PwyHelper ``` 扩展类: ``` com.kingdee.eas.tm.im.imExtend.PwyHelperExtend ``` ``` ```

EAS Cloud 税务管理二开扩展

# 一、开票流程应收单 -> 开票单业务单据 -> 开票申请单 -> 开票单![image20210623192002648.webp](/download/0100bf...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息