U9 API ​R​C​V 收货单服务 依据采购订单收货 C#

余峰 2014-05-01 04:07:26
用友 U9V2.1产业链 API 收货单服务中分根据来源类型分为1.手工创建 2.采购订单,手工创建功能实现了,依据采购订单收货一直实现不了,U9 反馈信息没有准确提示。请u9 API 高手一阅,小弟感激不尽:QQ(30318771)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using UFSoft.UBF.Util.Context;
using www.ufida.org.EntityData;
using UFSoft.UBF.Exceptions1;
using UFSoft.UBF.Business.BusinessEntity;
using UFSoft.UBF.Exceptions;
using UFSoft.UBF.PL.Engine;
using UFSoft.UBF.Service;
using System.Collections;
using Bossi.Server.BusinessRule.Platform;
using Bossi.Server.BusinessRule;

namespace CreateRCVSRVTest
{

public class CreateRCVSRV : IDoRdEDIExchange
{
public CreateRCVSRV()
{
}

private ThreadContext context;
private UFIDAU9PMRcvReceivementData[] Execute()
{
//try
//{
UFIDAU9ISVRCVICreateRCVSRVClient client = new UFIDAU9ISVRCVICreateRCVSRVClient();

UFIDAU9ISVRCVDTOOBAReceivementDTOData[] Boms;
List<UFIDAU9ISVRCVDTOOBAReceivementDTOData> listRcv = new List<UFIDAU9ISVRCVDTOOBAReceivementDTOData>();
List<UFIDAU9ISVRCVDTOOBARcvLineDTOData> listRcvLine = new List<UFIDAU9ISVRCVDTOOBARcvLineDTOData>();

//头
UFIDAU9ISVRCVDTOOBAReceivementDTOData rcv = new UFIDAU9ISVRCVDTOOBAReceivementDTOData();
//单据类型
rcv.m_rcvDocType = new UFIDAU9PMDTOsBESimp4UIDTOData();
rcv.m_rcvDocType.m_code = "RCV01";//单据类型 标准收货
rcv.m_receivementType = 0;//收货单类型 0:采购收货 1:采购退货 2:销售退回收货单

//rcv.m_srcDocType = 0; //来源单据类型 0:手工创建

rcv.m_businessDate = DateTime.Now;

rcv.m_supplier = new UFIDAU9CBOSCMSupplierSupplierMISCInfoData();//供应商
rcv.m_supplier.m_code = "20001";//供应商编码

//rcv.m_aC = new UFIDAU9PMDTOsBESimp4UIDTOData(); //核算币种 C001:人民币
//rcv.m_aC.m_code = "C001";

//rcv.m_tC = new UFIDAU9PMDTOsBESimp4UIDTOData();//交易币 C001:人民币
//rcv.m_tC.m_code = "C001";

rcv.m_isInitEvaluation = false;//是否期初

rcv.sysState = ObjectState.Inserted;


rcv.m_rcvLines = new UFIDAU9ISVRCVDTOOBARcvLineDTOData[] { };

int Num = 1;

for (int i = 0; i < Num; i++)
{
//行
//listRcvLine.Add(Manually_Create());//加载行 手工创建

listRcvLine.Add(Purchase_Order());//加载行 采购订单
}

rcv.m_rcvLines = listRcvLine.ToArray();

listRcv.Add(rcv);
Boms = listRcv.ToArray();

// 返回参数:消息数组
MessageBase[] returnMsg;

// 服务调用
return client.Do(out returnMsg, context, Boms);
}

/// <summary>
/// 手工创建
/// </summary>
/// <returns></returns>
private UFIDAU9ISVRCVDTOOBARcvLineDTOData Manually_Create()
{
UFIDAU9ISVRCVDTOOBARcvLineDTOData rcvLine = new UFIDAU9ISVRCVDTOOBARcvLineDTOData();
rcvLine.m_itemInfo = new UFIDAU9CBOSCMItemItemInfoData();
rcvLine.m_itemInfo.m_itemCode = "101650112";//料品

rcvLine.m_sysPriceTC = 10;//系统价
rcvLine.m_orderPriceTC = 10;//定价
rcvLine.m_finallyPriceTC = 10;//最终价
rcvLine.m_planQtyTU = 2; //计划到货量
rcvLine.m_arriveQtyTU = 2;//实到数量

rcvLine.m_wh = new UFIDAU9PMDTOsBESimp4UIDTOData();
rcvLine.m_wh.m_code = "106";//存储地点

rcvLine.m_rcvDept = new UFIDAU9PMDTOsBESimp4UIDTOData();
rcvLine.m_rcvDept.m_code = "0502";//收货部门

rcvLine.m_whMan = new UFIDAU9PMDTOsBESimp4UIDTOData();
rcvLine.m_whMan.m_code = "11150035";//库管员

rcvLine.sysState = ObjectState.Inserted;

rcvLine.m_freeReason = -1; //免费品原因
//rcvLine.m_freeType = -1;//免费品类型

rcvLine.m_rejectReason = -1;//拒收原因

return rcvLine;
}

/// <summary>
/// 采购订单
/// </summary>
/// <returns></returns>
private UFIDAU9ISVRCVDTOOBARcvLineDTOData Purchase_Order()
{
UFIDAU9ISVRCVDTOOBARcvLineDTOData rcvLine = new UFIDAU9ISVRCVDTOOBARcvLineDTOData();
rcvLine.m_srcPO = new UFIDAU9CBOSCMPropertyTypesSrcDocInfoData();
rcvLine.m_srcPO.m_srcDocNo = "PO01405010001";
rcvLine.m_srcPO.m_srcDocLineNo = 10;
rcvLine.m_srcPO.m_srcDocSubLineNo = 10;
rcvLine.m_srcDocType = 1; //采购订单
rcvLine.m_srcPO.SrcDocOrg = 1001309061215398;

rcvLine.m_arriveQtyTU = 2;//实到数量
rcvLine.m_arriveQtyTBU = 2;

rcvLine.sysState = ObjectState.Inserted;

return rcvLine;
}
}
}
...全文
2724 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeffrey_ji 2016-12-29
  • 打赏
  • 举报
回复
请问,我参照采购订单生成收货单,一直提示“仓储地点不能为空,请录入仓储地点”,然后我增加了rcvLine.m_wh.m_code="100100";还是仓储地点不能为空的提示

2,679

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 ERP/CRM
社区管理员
  • ERP/CRM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧