U8根据发货单生成销售订单(反向生单)
需求:借出单转销售,在U8系统中是自动生成发货单,销售出库单并自动审核,有发货记录无销售订单记录,需求有销售订单记录。在借出转换单上做触发器时,发现借出转换单表HY_DZ_BorrowOutChange无法操作,不知道什么原因。所以采用存储过程定时执行,采用此语句,在发货单中整单关联能关联到销售订单。语句如下:
ALTER PROCEDURE P_Quck_JCZX
WITH ENCRYPTION
AS
DECLARE @cSOCode NVARCHAR(500); --销售订单号
DECLARE @ID INT; --主表ID
DECLARE @iSOsID INT; --销售订单子表标识2
DECLARE @iFatherId INT; --单据编号生成控制表中主表ID流水号
DECLARE @iChildId INT; --单据编号生成控制表中子表ID流水号
DECLARE @Total INT; --发货单表体行数
DECLARE @iRowNo INT; --行号
DECLARE @cDLCode NVARCHAR(500); --发货单号
DECLARE @err INT; --错误数
SET @err = 0;
SET @cDLCode =
(
SELECT TOP 1
cDLCode
FROM dbo.DispatchList
WHERE ISNULL(cSourceCode, '') <> ''
AND ISNULL(cDefine1, '') = ''
AND dDate>'2022-03-01'
ORDER BY DLID
);--每次取一条数据执行,在自定义项1中打上标记,作为条件判断,发货单表头中cSourceCode字段为借出转换单号,
--此字段不为空说明是从借出转换单生成的发货单,自定义项1打上标记说明已经执行生成销售订单
SET @cSOCode = N'SCZX' + CAST(DATEDIFF(SECOND, '1970-01-01 08:00:00', dateadd(hh,-1,getdate())) AS NVARCHAR(100));
SET @ID =
(
SELECT '1' + RIGHT('000000000' + CAST(
(
SELECT iFatherId + 1
FROM UFSystem.dbo.UA_Identity
WHERE cAcc_Id = '998'
AND cVouchType = 'Somain'
) AS NVARCHAR), 9)
);
SET @iSOsID =
(
SELECT '1' + RIGHT('000000000' + CAST(
(
SELECT iChildId
FROM UFSystem.dbo.UA_Identity
WHERE cAcc_Id = '998'
AND cVouchType = 'Somain'
) AS NVARCHAR), 9)
);
SET @iFatherId =
(
SELECT iFatherId
FROM UFSystem.dbo.UA_Identity
WHERE cAcc_Id = '998'
AND cVouchType = 'Somain'
);
SET @iChildId =
(
SELECT iChildId
FROM UFSystem.dbo.UA_Identity
WHERE cAcc_Id = '998'
AND cVouchType = 'Somain'
);
SET @Total =
(
SELECT MAX(irowno)
FROM dbo.DispatchList
JOIN dbo.DispatchLists
ON DispatchLists.DLID = DispatchList.DLID
AND DispatchList.cDLCode = @cDLCode
);
BEGIN TRANSACTION;
--插入销售订单主表
INSERT INTO dbo.SO_SOMain
(
cSTCode, --销售类型编码
dDate, --单据日期
cSOCode, --销售订单号
cCusCode, --客户编码
cDepCode, --部门编码
cPersonCode, --业务员编码
cCusOAddress, --发货地址
cexch_name, --币种名称
iExchRate, --汇率
iTaxRate, --表头税率
iStatus, --状态(0-未审核;1-已审核)
cMaker, --制单人
cVerifier, --审核人
cCusName, --客户名称
ID, --销售订单主表标识
iVTid, --单据模版号
cBusType, --业务类型
dPreMoDateBT, --预完工日期
dPreDateBT, --预发货日期
caddcode, --发货地址编码
iverifystate, --审核状态
iswfcontrolled, --是否控制工作流
dverifydate, --审核日期
dcreatesystime, --制单时间
dverifysystime, --审核时间
cinvoicecompany, --开票单位编码
cMemo --备注
)
SELECT cSTCode,
dateadd(hh,-1,dateadd(hh,-1,getdate())), --时间往前推一个小时
@cSOCode,
cCusCode,
cDepCode,
cPersonCode,
cShipAddress,
cexch_name,
iExchRate,
iTaxRate,
1,
cMaker,
cVerifier,
cCusName,
@ID,
--131447,
95,
cBusType,
dateadd(hh,-1,getdate()),
dateadd(hh,-1,getdate()),
N'0001',
0,
0,
dateadd(hh,-1,getdate()),
dateadd(hh,-1,getdate()),
dateadd(hh,-1,getdate()),
cinvoicecompany,
'借出转销售生单'
FROM dbo.DispatchList
WHERE cDLCode = @cDLCode;
SET @err = @err + @@ERROR;
--插入销售订单子表
SET @iRowNo = 1;
WHILE @iRowNo <= @Total
BEGIN
INSERT INTO dbo.SO_SODetails
(
--AutoID, --销售订单子表标识
cSOCode, --销售订单号
cInvCode, --存货编码
dPreDate, --预发货日期
iQuantity, --数量
iUnitPrice, --原币无税单价
iTaxUnitPrice, --原币含税单价
iMoney, --原币无税金额
iTax, --原币税额
iSum, --原币价税合计
iDisCount, --原币折扣额
iNatUnitPrice, --本币无税单价
iNatMoney, --本币无税金额
iNatTax, --本币税额
iNatSum, --本币价税合计
iNatDisCount, --本币折扣额
iFHQuantity, --累计发货数量
iFHMoney, --累计原币发货金额
iSOsID, --销售订单子表标识2
KL, --扣率
KL2, --二次扣率
cInvName, --存货名称
iTaxRate, --税率
ID, --销售订单主表标识
dPreMoDate, --预完工日期
iRowNo, --行号
foutquantity, --出库数量
idemandtype, --需求跟踪方式(1-销售订单行号;4-需求分类号5-销售订单号)
fVeriDispQty, --已审核订货数量
fVeriDispSum, --已审核订货原币金额
bsaleprice --报价含税标识
)
SELECT @cSOCode,
cInvCode,
dateadd(hh,-1,getdate()),
iQuantity,
iUnitPrice,
iTaxUnitPrice,
iMoney,
iTax,
iSum,
0.0000,
iNatUnitPrice,
iNatMoney,
iNatTax,
iNatSum,
0.0000,
iQuantity,
iSum,
@iSOsID + @iRowNo,
KL,
KL2,
cInvName,
iTaxRate,
@ID,
dateadd(hh,-1,getdate()),
@iRowNo,
iQuantity,
1,
iQuantity,
iSum,
1
FROM dbo.DispatchLists
WHERE DLID =
(
SELECT DLID FROM DispatchList WHERE cDLCode = @cDLCode
)
AND DispatchLists.irowno = @iRowNo;
SET @err = @err + @@ERROR;
UPDATE dbo.DispatchList
SET cSOCode = @cSOCode,
cDefine1 = @cSOCode
WHERE cDLCode = @cDLCode;
SET @err = @err + @@ERROR;
UPDATE dbo.DispatchLists
SET cSoCode = @cSOCode,
iSOsID = @iSOsID + @iRowNo
WHERE DLID =
(
SELECT DLID FROM dbo.DispatchList WHERE cDLCode = @cDLCode
)
AND DispatchLists.irowno = @iRowNo;
SET @iRowNo = @iRowNo + 1;
SET @err = @err + @@ERROR;
END;
--更新单据表头表体ID号
UPDATE UFSystem.dbo.UA_Identity
SET iFatherId = @iFatherId + 1,
iChildId = @iChildId + @Total
WHERE cAcc_Id = '998'
AND cVouchType = 'Somain';
SET @err = @err + @@ERROR;
IF @err <> 0
BEGIN
ROLLBACK TRANSACTION;
END;
ELSE
BEGIN
COMMIT TRANSACTION;
END;
U8根据发货单生成销售订单(反向生单)相关推荐
- 3.20 采购订单自动生成销售订单
3.20.1 业务方案描述 对于同一企业集团内部的不同法人之间,存在需要调让物料,买方和卖方采用买卖方式进行业务运作和财务核算. 对于买方,按照内部商定的协议价格创建采购订单,按照采购订单收货,按 ...
- 批量生成销售订单、退货订单
生成一般销售订单和退货订单所要使用的BAPI不同, 一般销售订单: BAPI_SALESORDER_CREATEFROMDAT2 退货订单: BAPI_CUSTOMERRETURN_CREATE 二者 ...
- 销售发货单细行【订单编号】引用销售订单主表【编号】解决方案
客户需求: 销售发货单细行的[订单编号]引用销售订单主表[编号],如下图 解决方案: 由于销售发货单细行有字段BaseDocNum记录销售订单的DocNum. 所以到web控件设置里面添加订单编号这个 ...
- 生产订单BOM、销售订单BOM、标准BOM
生产订单BOM.销售订单BOM.标准BOM 生产订单BOM.销售订单BOM.标准BOM 生产订单BOM ,跑生产订单时,子组件体现作用 . 销售订单BOM ,跑MRP 时体现子组件的作用 . rcdf ...
- 旺店通·企业奇门与用友BIP对接集成查询退换管理连通销售退货单个保存(退换货生成销售退货(线下)-测试重传)
源系统:旺店通·企业奇门 旺店通是北京掌上先机网络科技有限公司旗下品牌,国内的零售云服务提供商,基于云计算SaaS服务模式,以体系化解决方案,助力零售企业数字化智能化管理升级.为零售电商企业的订单管理 ...
- 如何在S/4HANA生产订单创建上下文里拿到前置销售订单信息
我写了一段ABAP程序,放在我的github上: https://github.com/i042416/KnowlegeRepository/blob/master/ABAP/S4/ZCREATE_S ...
- sap销售发货的流程_SAP销售订单操作步骤-最新
<SAP销售订单操作步骤-最新>由会员分享,可在线阅读,更多相关<SAP销售订单操作步骤-最新(8页珍藏版)>请在人人文库网上搜索. 1.SAP销售订单引用预订单标准操作步骤操 ...
- SAP script 自动创建销售订单机器人,协同Excel
首先要开启SAP的脚本 参考 SAP系统开启脚本录制和回放功能 - 简书 参考一边生成销售订单的过程 注意不要有额外的操作 记录下脚本 If Not IsObject(applicatio ...
- 金蝶K3销售订单数据字典
字段名称 字段描述 FAreaPS 销售范围: FBillCaption 销售订单 FBillerID 制单: FBillNo 内部订单号: FBrID 制单机构: ...
- U811.1接口EAI系列之二--生成销售出库单调用U8的EAI通用处理方法--PowerBuilder语言...
1.销售系统销售出库,更新U811.1材料库存的EAI的XML生成. 2.主要根据U8配置会生成出库单和同时是否更新库存量,还是更新现存量等等. 3.具体参考代码如下: 作者:王春天 2013-11- ...
最新文章
- 如何将 Spring Boot Actuator 的指标信息输出到 InfluxDB 和 Prometheus
- 2019编译ffepeg vs_2020/5-Win10下ffmpeg最简编译方法
- 中文文本纠错 算例实现(有算例完整代码)
- Hadoop掀起大数据革命 三巨头齐发力
- Flink SQL 在网易云音乐的产品化实践
- EFCore Lazy Loading + Inheritance = 干净的数据表 (二)
- Visual Studio—— IntelliSense: #error 指令: Please use the /MD switch for _AFXDLL builds
- Linux静态路由相关
- JDK 8_jstack命令使用
- Python 语言程序设计(5-1)函数的定义与使用
- 关于虚拟主机软件配置的问题
- c语言怎样设计程序界面,「分享」C语言如何编写图形界面
- ps技巧学习之常用8种抠图方法
- java正则表达式双引号_java正则表达式去掉双引号
- 手机植入木马可以监视你的一举一动,黑客是怎样入侵别人手机的?
- 局域网bs虚拟服务器怎么创建,搭建局域网地图服务器
- IE8 以下版本的浏览器的盒子模型有什么不一样的地方?
- README.txt
- android lcm,MTK Android Driver :lcm
- 0428-团队项目2
热门文章
- 帝国 php 7.0 默认 后台用户名及认证码,帝国CMS忘记后台登陆用户名 密码 认证码 安全提问答案 数据库用户名及密码的解决方法 | 坐倚北风...
- python开发工程师招聘要求
- 题解 CF32C 【Flea】
- Linux gre tunnel 端口,两台Linux通过GRE tunnel的隧道实现互通 — 并且改变其中一台的回程路由...
- 中南大学计算机学院2021复试名单,2021年中南大学研究生拟录取名单整理汇总(各学院)...
- Java.util.ArrayList详解
- 2013年大学英语专升本作文——Should One Expect a Reward When Doing a Good Deed?【标准答案、精品范文答案】
- macbook插入耳机不出声
- 称重传感器(体脂体重模块)应用及特点
- 梅特勒托利多电子秤显示EEP服务器错误,托利多电子秤故障排除和维修方法