您的位置:首页 > 编程语言 > VB

U811.1接口EAI系列之三--采购订单生成--VB语言

2013-10-31 14:52 106 查看
采购订单业务,下面是具体代码与参数说明:

下面调用的通用方法在: /article/5324710.html

作者:王春天 2013-10-31

地址:/article/5324712.html

1.下面是具体代码:

'采购订单生成XML
Public Function xml_purchaseorder(ls_sql1 As String, ls_sql2 As String) As Boolean
xml_purchaseorder = True
Dim ls_xml As String
Dim ls_sender As String
Dim ls_code As String
Dim ls_date As String
Dim ls_vendorcode As String
Dim ls_deptcode As String
Dim ls_personcode As String
Dim ls_purchase_type_code As String
Dim ls_operation_type_code As String
Dim ls_address As String
Dim ls_recsend_type As String
Dim ls_idiscounttaxtype As String
Dim ls_currency_name As String
Dim ls_currency_rate As String
Dim ls_tax_rate As String
Dim ls_paycondition_code As String
Dim ls_traffic_money As String
Dim ls_bargain As String
Dim ls_remark As String
Dim ls_period As String
Dim ls_maker As String
Dim i As Long
Dim ls_data As String
Dim ll_count As Long
Dim ds_head As ADODB.Recordset '主表
Dim ds_detail As ADODB.Recordset '细表

Set ds_head = CWBQuery(ls_sql1, ls_return)
If ds_head.RecordCount = 0 Then
MsgBox "未检索到主表数据!"
Exit Function
End If
Set ds_detail = CWBQuery(ls_sql2, ls_return)
ll_count = ds_detail.RecordCount
If ll_count = 0 Then
MsgBox "未检索到细表数据!"
Exit Function
End If
ls_code = ds_head(0) '订单编号
ls_date = Format(ds_head(1), "0000-00-00") '订单日期
ls_vendorcode = ds_head(2) '供应商编号
ls_deptcode = "" '部门编号
ls_personcode = ds_head(3) '业务员
ls_purchase_type_code = "" '采购类型编码
ls_operation_type_code = ds_head(4) '业务类型
ls_address = "" '到货地址
ls_recsend_type = "" '运输方式
ls_idiscounttaxtype = ds_head(5) '扣税类别 (0应税外加,1应税内含)
ls_currency_name = ds_head(6) '外币名称
ls_currency_rate = ds_head(7) '汇率
ls_tax_rate = "" '税率
ls_paycondition_code = ds_head(8) '付款条件
ls_traffic_money = "0" '运费
ls_bargain = "0" '定金
ls_remark = "" '备注
ls_period = "" '采购计划期间
ls_maker = ds_head(9) '制单人

'增加文件头相关信息
ls_xml = "<?xml version=""1.0"" encoding=""UTF-8""?>" + vbCrLf

ls_xml = ls_xml & "<ufinterface sender=""" & u8_xtm & """ receiver=""u8"" roottag=""purchaseorder"" docid="""" proc=""Add"" renewproofno = ""Y"" codeexchanged=""N"" exportneedexch=""N"" display="""" family="""" timestamp="""">" + vbCrLf

'增加文件中数据项信息 header
ls_xml = ls_xml & "<purchaseorder>" + vbCrLf
ls_xml = ls_xml & "<header>" + vbCrLf
ls_xml = ls_xml & "<code>" & ls_code & "</code>" + vbCrLf '订单编号
ls_xml = ls_xml & "<date>" & ls_date & "</date>" + vbCrLf '订单日期
ls_xml = ls_xml & "<vendorcode>" & ls_vendorcode & "</vendorcode>" + vbCrLf '供应商编号
ls_xml = ls_xml & "<deptcode>" & ls_deptcode & "</deptcode>" + vbCrLf '部门编号
ls_xml = ls_xml & "<personcode>" & ls_personcode & "</personcode>" + vbCrLf '业务员
ls_xml = ls_xml & "<purchase_type_code>" & ls_purchase_type_code & "</purchase_type_code>" + vbCrLf '采购类型编码
ls_xml = ls_xml & "<operation_type_code>" & ls_operation_type_code & "</operation_type_code>" + vbCrLf '业务类型
ls_xml = ls_xml & "<address>" & ls_address & "</address>" + vbCrLf '到货地址
ls_xml = ls_xml & "<recsend_type>" & ls_recsend_type & "</recsend_type>" + vbCrLf '运输方式
ls_xml = ls_xml & "<idiscounttaxtype>" & ls_idiscounttaxtype & "</idiscounttaxtype>" + vbCrLf '扣税类别 (0应税外加,1应税内含)
ls_xml = ls_xml & "<currency_name>" & ls_currency_name & "</currency_name>" + vbCrLf '外币名称
ls_xml = ls_xml & "<currency_rate>" & ls_currency_rate & "</currency_rate>" + vbCrLf '汇率
ls_xml = ls_xml & "<tax_rate>" & ls_tax_rate & "</tax_rate>" + vbCrLf '税率
ls_xml = ls_xml & "<paycondition_code>" & ls_paycondition_code & "</paycondition_code>" + vbCrLf '付款条件
ls_xml = ls_xml & "<traffic_money>" & ls_traffic_money & "</traffic_money>" + vbCrLf '运费
ls_xml = ls_xml & "<bargain>" & ls_bargain & "</bargain>" + vbCrLf '定金
ls_xml = ls_xml & "<remark>" & ls_remark & "</remark>" + vbCrLf '备注
ls_xml = ls_xml & "<period>" & ls_period & "</period>" + vbCrLf '采购计划期间
ls_xml = ls_xml & "<maker>" & ls_maker & "</maker>" + vbCrLf '制单人
ls_xml = ls_xml & "</header>" + vbCrLf

'body
ls_xml = ls_xml & "<body>" + vbCrLf
For i = 1 To ll_count
ls_xml = ls_xml & "<entry>" + vbCrLf
ls_data = ds_detail(0)
ls_xml = ls_xml & "<inventorycode>" & ls_data & "</inventorycode>" + vbCrLf '存货编码
ls_data = ds_detail(1)
ls_xml = ls_xml & "<checkflag>" & ls_data & "</checkflag>" + vbCrLf '是否检验
ls_data = ds_detail(2)
ls_xml = ls_xml & "<unitcode>" & ls_data & "</unitcode>" + vbCrLf '物料单位编码
ls_data = Str(ds_detail(3))
ls_xml = ls_xml & "<quantity>" & ls_data & "</quantity>" + vbCrLf '主计量数量
ls_data = ""
ls_xml = ls_xml & "<num>" & ls_data & "</num>" + vbCrLf '辅计量数量
ls_data = ""
ls_xml = ls_xml & "<quotedprice>" & ls_data & "</quotedprice>" + vbCrLf '报价
ls_data = Str(ds_detail(4))
ls_xml = ls_xml & "<price>" & ls_data & "</price>" + vbCrLf '单价(原币,无税)
ls_data = Str(ds_detail(4))
ls_xml = ls_xml & "<taxprice>" & ls_data & "</taxprice>" + vbCrLf '含税单价(原币,无税)
ls_data = Str(ds_detail(5))
ls_xml = ls_xml & "<money>" & ls_data & "</money>" + vbCrLf '金额(原币,无税)
ls_data = ""
ls_xml = ls_xml & "<tax>" & ls_data & "</tax>" + vbCrLf '税额(原币)
ls_data = Str(ds_detail(5))
ls_xml = ls_xml & "<sum>" & ls_data & "</sum>" + vbCrLf '价税合计(原币)
ls_data = ""
ls_xml = ls_xml & "<natprice>" & ls_data & "</natprice>" + vbCrLf '单价(本币,无税)
ls_data = ""
ls_xml = ls_xml & "<natmoney>" & ls_data & "</natmoney>" + vbCrLf '金额(本币,无税)
ls_data = ""
ls_xml = ls_xml & "<nattax>" & ls_data & "</nattax>" + vbCrLf '税额(本币)
ls_data = ""
ls_xml = ls_xml & "<natsum>" & ls_data & "</natsum>" + vbCrLf '价税合计(本币)
ls_data = ""
ls_xml = ls_xml & "<natdiscount>" & ls_data & "</natdiscount>" + vbCrLf '折扣额(本币)
ls_data = ""
ls_xml = ls_xml & "<taxrate>" & ls_data & "</taxrate>" + vbCrLf '税率
ls_data = ""
ls_xml = ls_xml & "<item_class>" & ls_data & "</item_class>" + vbCrLf '项目大类
ls_data = ""
ls_xml = ls_xml & "<item_code>" & ls_data & "</item_code>" + vbCrLf '项目
ls_data = ""
ls_xml = ls_xml & "<item_name>" & ls_data & "</item_name>" + vbCrLf '项目名
ls_data = Format(ds_detail(6), "0000-00-00")
ls_xml = ls_xml & "<arrivedate>" & ls_data & "</arrivedate>" + vbCrLf '到货日期
ls_data = ""
ls_xml = ls_xml & "<btaxcost>" & ls_data & "</btaxcost>" + vbCrLf '价格标准(0无税,1含税)
ls_xml = ls_xml & "</entry>" + vbCrLf
Next i
ls_xml = ls_xml & "</body>" + vbCrLf

'增加文件尾相关信息
ls_xml = ls_xml & "</purchaseorder>" + vbCrLf
ls_xml = ls_xml & "</ufinterface>" + vbCrLf
Dim ls_temp As String '接收返回消息,如果成功,返回U8中采购订单编号,如果失败,返回错误信息
If SendToEAI(ls_xml, ls_temp) Then '成功
MsgBox "上传成功" & ls_temp
Else '失败
MsgBox ls_temp
xml_purchaseorder = False
End If
End Function


2.参数说明:

订单主表:cgt04
项目是否必传对应业务系统字段描述
订单编号CGDDHM如果在U8中不重复,使用U8中使用此编号,如果重复,U8中自动生成一个新编号,但注意:不能获取到U8新生成的编号
订单日期CGDDRQ(数值8位)YYYY-MM-DD
供应商编号CGGYDM 
部门编号 
业务员编号CGCGDM 
采购类型编码 
业务类型普通采购普通采购、直运采购、固定资产,使用普通采购即可
到货地址 
运输方式 
扣税类别 1(0应税外加,1应税内含)
外币名称XTHBDM,需要转换成名称人民币、美元、日元
汇率CGDHHL,7位小数位 
税率如:17
付款条件可用付款期限?XTQXDM 
运费 
定金 
备注 
采购计划期间 
制单人名称CGLRYH如果需要上传,传入名称

订单细表:cgt05
项目是否必传对应业务系统字段描述
存货编码KCWPDM 
是否检验0,不需要检验1 or 0,在U8直接做时默认为0
物料单位编码XTJLDW 
主计量数量CGCGSL 
辅计量数量如果是浮动转换率不传,如果是固定转换率必传
报价 
单价(原币,无税)CGDWJG不传的话,在U8的采购订单中为空
含税单价(原币,无税)不传的话,在U8的采购订单中为空
金额(原币,无税)CGWPJE不传的话,在U8的采购订单中为空
税额(原币)不传的话,在U8的采购订单中为空
价税合计(原币)不传的话,在U8的采购订单中为空
单价(本币,无税)不传的话,在U8的采购订单中为空
金额(本币,无税)不传的话,在U8的采购订单中为空
税额(本币)不传的话,在U8的采购订单中为空
价税合计(本币)不传的话,在U8的采购订单中为空
折扣额(本币)不传的话,在U8的采购订单中为空
税率如17
项目大类 
项目 
项目名 
到货日期CGJHRQ(数值8位)YYYY-MM-DD
价格标准0无税,1含税,不知道和后续有什么关系
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: