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); }
}

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); }}

Order Helper的更多相关文章

  1. 对依赖倒置原则(DIP)及Ioc、DI、Ioc容器的一些理解

    1.概述 所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体.简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模 ...

  2. leetcode & lintcode for bug-free

    刷题备忘录,for bug-free leetcode 396. Rotate Function 题意: Given an array of integers A and let n to be it ...

  3. leetcode & lintcode 题解

    刷题备忘录,for bug-free 招行面试题--求无序数组最长连续序列的长度,这里连续指的是值连续--间隔为1,并不是数值的位置连续 问题: 给出一个未排序的整数数组,找出最长的连续元素序列的长度 ...

  4. LeetCode---二叉树3-总结例题

    二叉树-总结例题 1-从中序与后序遍历序列构造二叉树 给定二叉树的后序遍历和二叉树的中序遍历 想法: 先根据后序遍历的最后一个元素构造根节点 寻找根节点在中序遍历中的位置 递归构建根节点的左右子树 / ...

  5. [LeetCode] Binary Tree Zigzag Level Order Traversal 二叉树的之字形层序遍历

    Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...

  6. Print a Binary Tree in Vertical Order

    http://www.geeksforgeeks.org/print-binary-tree-vertical-order/ package algorithms; import java.util. ...

  7. magento app/design/adminhtml/default/default/template/sales/order/view/info.phtml XSS Vul

    catalogue . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 Relevant Link: http://www.freebuf. ...

  8. WebGrid Helper with Check All Checkboxes

    WebGrid Helper with Check All Checkboxes myEvernote Link Tuesday, September 13, 2011ASP.NET ASP.NET ...

  9. Binary Tree Vertical Order Traversal

    Given a binary tree, return the vertical order traversal of its nodes' values. (ie, from top to bott ...

随机推荐

  1. Linux 虚拟机虚拟网卡问题导致无法连接问题

    问题描述 当 Linux 虚拟机启动时,通过串口输出或者启动日志, 观察到虚拟网卡启动或者初始化故障, 导致虚拟机无法连接. 问题分析 常见的超时报错范例如下: CentOS 复制 Bringing ...

  2. Data Flow ->> OLE DB Destination ->> Fast Load

    OLE DB Destination组件提供了fast load选项,用bulk模式load数据而不是row-to-row的模式.这样性能上好.但是需要注意一点就是,一旦用了fast load,err ...

  3. SVNKit学习——wiki+简介(二)

    这篇文章是参考SVNKit官网在wiki的文档,做了个人的理解~ 首先抛出一个疑问,Subversion是做什么的,SVNKit又是用来干什么的? 相信一般工作过的同学都用过或了解过svn,不了解的同 ...

  4. 配置spark集群

    配置spark集群 1.配置spark-env.sh [/soft/spark/conf/spark-env.sh] ... export JAVA_HOME=/soft/jdk 2.配置slaves ...

  5. 最短路径-Dijkstra算法与Floyd算法

    一.最短路径 ①在非网图中,最短路径是指两顶点之间经历的边数最少的路径. AE:1    ADE:2   ADCE:3   ABCE:3 ②在网图中,最短路径是指两顶点之间经历的边上权值之和最短的路径 ...

  6. 沉淀,再出发——在Hadoop集群的基础上搭建Spark

    在Hadoop集群的基础上搭建Spark 一.环境准备 在搭建Spark环境之前必须搭建Hadoop平台,尽管以前的一些博客上说在单机的环境下使用本地FS不用搭建Hadoop集群,可是在新版spark ...

  7. python 字符编码、格式化

      数据类型-布尔值一个布尔值只有True.False两种值,要么是True,要么是False 布尔值可以用and.or和not运算 空值是Python里一个特殊的值,用None表示 Python对b ...

  8. C#中internal关键字

    对于一些大型的项目,通常由很多个DLL文件组成,引用了这些DLL,就能访问DLL里面的类和类里面的方法.比如,你写了一个记录日志的DLL,任何项目只要引用此DLL就能实现记录日志的功能,这个DLL文件 ...

  9. oracle 函数 WMSYS.WM_CONCAT 与对应 mysql 函数GROUP_CONCAT的用法

    1.oracle函数 WMSYS.WM_CONCAT的使用 如图,将图1的结果变成图2的结果,使用函数 WMSYS.WM_CONCAT 即可. 查询语句需要配合使用group by select aa ...

  10. .NET Core学习之路

    1.NET Core环境搭建 安装.NET Core: .NET Core 包括.NET Core Runtime 和 .NET Core SDK: NET Core = 应用运行依赖的 .NET C ...