[TOC]
1. 流程概述
概要的说明,订单流转期间,系统所做的操作.
1.1 进入订单池中间表
1.1.1 不能为空的项目有
字段 | 备注 |
---|---|
POID | 供应商采购单号 (外部订单编号) |
CompanyCode | 外部公司编号 |
POID | 供应商下单人部门编号 |
Receiver | 收货人名称 |
ReceiverAddress | 收货人地址 |
FromID | 单据来源编号 |
1.1.2 判断接口订单是否已经存在
-错误-
已经存在相同的单据.单据编号 xxxxx
1.2 创建销售订单
目前系统会有一个专门的ERP_Job ,每隔15min自动获取接口订单表中数据,以来创建ERP系统销售订单.在创建销售订单时,会将下方可能出现的错误,发送邮件给接口订单提供的邮件通知列表人员
1.2.1 -check-
根据 <外部公司编号[CompanyCode]> 判断是否存在 客户信息. 若不存在,则提示:
-错误-
系统找不到此单据的外部公司编号
1.2.2 -check-
根据 <外部部门编号[DepartmentCode]> 判断是否存在 成本中心信息. 若不存在,则提示:
-错误-
系统不存在该成本中心,系统找不到外部客户编号是 xxxx 的信息
1.2.3 -check-
根据 <外部订单号[POID]> 与 <外部公司编号[CompanyCode]> 判断是否已经存在相同销售订单. 若不存在,则提示:
-错误-
该订单已经存在
1.2.4 -check-
根据取出的 成本中心信息 获取 成本中心联系人信息. 若未找到任何记录,则提示:
-错误-
系统中该成本中心未找到有效的账号.请先添加账号信息.成本中心名称:xxxx
1.2.5 设置订单地址信息,同时在客户地址信息中找寻,是否有与此地址信息完全匹配的地址记录.若找到,则关联到此地址信息.若未找到,则新增地址信息,并关联.
//设置收货地址信息
model.SOInfo.ReceiveAddress = model.ReceiverAddress.Trim();
model.SOInfo.ReceiveContact = model.Receiver.Trim();
model.SOInfo.ReceivePhone = model.ReceiverTelePhone.Trim();
model.SOInfo.ReceiveCellPhone = model.ReceiverMobie.Trim();
model.SOInfo.ReceiveZip = model.ReceiverZip;
model.SOInfo.ReceiveAreaSysNo = model.ReciverAreaSysno;
...
//判断地址信息是否相等.
d.AreaSysNo == model.ReciverAreaSysno
&& CompStringCharEqual(d.Address, model.ReceiverAddress)
&& CompStringCharEqual(d.Contact, model.Receiver)
&& CompStringCharEqual(d.Phone, model.ReceiverTelePhone)
&& CompStringCharEqual(d.CellPhone, model.ReceiverMobie)
&& CompStringCharEqual(d.Zip, model.ReceiverZip)
1.2.6 -check-
根据传入配送区域编号,查找是否存在可用的配送方式. 若不存在,则提示:
-错误-
未找到正确配送方式,请检查传入[ReciverAreaSysno]值是否正确.
1.2.7 -check-
设置发票信息. 若是 增票
需要判断发票六要素是否完全匹配. 若是 普票
只需要 判断 发票抬头是否匹配. 若不符合,则提示:
-错误-
未找到可用的发票信息,请先配置成本中心发票对照信息.
1.2.8 -check-
根据 客户与商品信息,获取订单商品价格信息. 若无数据,则提示:
-错误-
客户价套信息获取失败.
1.2.9 -check-
判断商品信息. 可能出现的提示:
商品错误信息,将会提示在商品列表中
-错误-
系统中不存在该商品
-错误-
此商品已下架
-错误-
商品计量单位不一致
-错误-
未找到该商品价格信息
商品明细有重复,但价格却不一致. 则提示:
-错误-
同一个商品ID对应不同的价格
若订单商品价格,与ERP系统中客户价套价格不一致, 则提示:
-警告-
该商品与其在本系统中的价格不一致.