您的位置:首页

crm操作销售订单实体

2017-05-02 16:29 323 查看
using System;

using Microsoft.Xrm.Sdk;

using Microsoft.Xrm.Sdk.Query;

using Microsoft.Crm.Sdk.Messages;

/// <summary>

/// 销售订单

/// </summary>

public class SoleOrderHelper

{

public static readonly string entityName = "salesorder";

public Guid soleorderId = Guid.Empty;

public IOrganizationService service;

/// <summary>

/// 创建销售订单

/// </summary>

public void Create(Guid accountId)

{

Entity en = new Entity() { LogicalName = entityName,Id = accountId };

en["name"] = "销售订单測试";

en["accountid"] = new EntityReference() { LogicalName = "account" ,Id = accountId };

soleorderId = service.Create(en);

}

/// <summary>

/// 将销售订单分派给其它用户或团队

/// </summary>

/// <param name="assignee">用户或团队引用</param>

public void Assign(EntityReference assignee)

{

AssignRequest request = new AssignRequest();

request.Target = new EntityReference() { LogicalName = entityName,Id = soleorderId };

request.Assignee = assignee;

AssignResponse response = (AssignResponse)service.Execute(request);

}

/// <summary>

/// 取消销售订单

/// </summary>

/// <param name="status">取消的状态</param>

public void CancelSalesOrder(int status)

{

CancelSalesOrderRequest request = new CancelSalesOrderRequest();

request.OrderClose = new Entity() { LogicalName = entityName,Id = soleorderId };

request.Status = new OptionSetValue(status);

CancelSalesOrderResponse response = (CancelSalesOrderResponse)service.Execute(request);

}

/// <summary>

/// 将销售订单转换为发票

/// </summary>

public void ConvertSalesOrderToInvoice()

{

ConvertSalesOrderToInvoiceRequest request = new ConvertSalesOrderToInvoiceRequest();

request.SalesOrderId = soleorderId;

request.ColumnSet = new ColumnSet("name","accountid");

ConvertSalesOrderToInvoiceResponse response = (ConvertSalesOrderToInvoiceResponse)service.Execute(request);

Entity invoiceEn = response.Entity;

}

/// <summary>

/// 完毕销售订单

/// </summary>

/// <param name="status">完毕的状态</param>

public void FulfillSalesOrder(int status)

{

FulfillSalesOrderRequest request = new FulfillSalesOrderRequest();

request.OrderClose = new Entity() { LogicalName = entityName,Id = soleorderId };

request.Status = new OptionSetValue(status);

FulfillSalesOrderResponse response = (FulfillSalesOrderResponse)service.Execute(request);

}

/// <summary>

/// 从指定商机中检索销售订单的产品组

/// </summary>

/// <param name="opportunityId">商机id</param>

public void GetSalesOrderProductsFromOpportunity(Guid opportunityId)

{

GetSalesOrderProductsFromOpportunityRequest request = new GetSalesOrderProductsFromOpportunityRequest();

request.OpportunityId = opportunityId;

request.SalesOrderId = soleorderId;

GetSalesOrderProductsFromOpportunityResponse response =

(GetSalesOrderProductsFromOpportunityResponse)service.Execute(request);

}

/// <summary>

/// 锁定销售订单定价

/// </summary>

public void LockSalesOrderPricing()

{

LockSalesOrderPricingRequest request = new LockSalesOrderPricingRequest();

request.SalesOrderId = soleorderId;

LockSalesOrderPricingResponse response = (LockSalesOrderPricingResponse)service.Execute(request);

}

/// <summary>

/// 解锁指定的销售订单(订单)中产品的单位价格

/// </summary>

public void UnlockSalesOrderPricing()

{

UnlockSalesOrderPricingRequest request = new UnlockSalesOrderPricingRequest();

request.SalesOrderId = soleorderId;

UnlockSalesOrderPricingResponse response = (UnlockSalesOrderPricingResponse)service.Execute(request);

}

/// <summary>

/// 取消指定安全主体(用户或团队)对销售订单的全部訪问权限

/// </summary>

/// <param name="revokee">用户或团队引用</param>

public void RevokeAccess(EntityReference revokee)

{

RevokeAccessRequest request = new RevokeAccessRequest();

request.Target = new EntityReference() { LogicalName = entityName,Id = soleorderId };

request.Revokee = revokee;

RevokeAccessResponse response = (RevokeAccessResponse)service.Execute(request);

}

/// <summary>

/// 删除销售订单

/// </summary>

public void Delete()

{

service.Delete(entityName, soleorderId);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: