单据分录如何根据录入的产品、数量等字段自动带入其他字段?
业务场景一:合同订单选择产品,录入数量之后,含税单价自动根据定制的“价格表”带出
配置实现方法:在ld_related_producttoolfield 表中写入控制规则和查询SQL,然后清除缓存,刷新页面。
● id:自动增长 ● modulename:设置需要添加控制的模块 ● trigger_columnname:设置哪些字段改变时触可以发规则,多个字段使用英文逗号分隔。单据分录中的“产品名称”使用“hdnProductId”来表示,其他字段使用单据分录 ld_producttoolfield 表中对应的 columnname 来表示。 ● effect_columnname:设置规则触发时,影响的字段(需要赋值的字段),多个字段使用英文逗号 ● query_sql:被影响字段赋值查询脚本: SELECT totalAS taxprice FROM ld_customform05 a LEFT JOIN ld_customform05scf b ONb.customform05id=a.customform05id WHERE a.deleted=0 ANDa.product_id='{hdnProductId}' ANDb.cf_3321<='{quantity}' ANDb.cf_3322>='{quantity}' ORDER BY b.cf_3321,b.cf_3322,a.modifiedtimeDESC LIMIT 1
!注意:(1) 查询脚本中变量引用方法: {触发字段} (2) 一定要把查询结果字段 AS 为 effect_columnname,查询结果只取一条记录 (3) 该功能仅适用于V8.2.2及以上版本,或者在V8.2.1版本打相关的补丁包
业务场景二:合同订单选择客户和产品后,根自动带出对应客户和产品的折扣
配置实现方法:在ld_related_producttoolfield 表中写入控制规则和查询SQL,然后清除缓存,刷新页面。
● Modulename:SalesOrder ● trigger_columnname:hdnProductId ● effect_columnname:discount_percent ● query_sql: SELECT ROUND(b.discount_percent,3)AS discount_percent FROM ld_quotes a LEFT JOIN ld_quotesdetail b ONb.id=a.quoteid WHERE a.deleted=0 ANDa.approvestatus<>'已拒绝' ANDb.productid='{hdnProductId}' ANDa.accountid='{ld_salesorder.accountid}' ORDER BY a.modifiedtime DESC LIMIT 1
|