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. lsqnonlin函数使用方法

    非线性最小二乘函数  lsqnonlin  格式x = lsqnonlin(fun,x0) %x0 为初始解向量:fun为,i=1,2,-,m,fun返回向量值F,而不是平方和值,平方和隐含在方法中, ...

  2. 查看源代码HTML

    HTML 提示 - 如何查看源代码 如果您想找到其中的奥秘,只需要单击右键,然后选择“查看源文件”(IE)或“查看页面源代码”(Firefox),其他浏览器的做法也是类似的.这么做会打开一个包含页面 ...

  3. Hibernate缓存策略

    Hibernate的一级缓存又称为Session缓存,其适用范围是在当前的会话之中,其生命周期和Session相同,随着Session的销毁,一级缓存也会随之销毁.一级缓存是不能取消的,Hiberna ...

  4. S/4HANA服务订单Service Order的批量创建

    我工作中接到一个任务,需要在性能测试系统里创建一亿条服务订单service order来做性能测试. 这么大规模的数据量,当然只能用代码来创建了. 本文提到的所有ABAP代码,我均已上传到我的Gith ...

  5. Django admin页面 显示中文问题

    http://127.0.0.1:8000/admin/ 该页中实现中文显示. 1.  页面显示的数据表表名 实现中文显示. models.Model类的内部类Meta,有两个特殊的选项:verbos ...

  6. 【[SCOI2008]奖励关】

    又抄了一篇题解 要凉了要凉了,开学了我还什么都不会 文化课凉凉,NOIP还要面临爆零退役的历史进程 这道题挺神的,期望+状态压缩 我们设\(dp[i][S]\)表示在第\(i\)天前,捡的宝物状态为\ ...

  7. Html5的本地储存 Web Storage

      Html5 中的存储包括两种:sessionStorage 和 localStorage   sessionStorage 用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话 ...

  8. 浅谈DB2在线分析处理函数

    最近碰到一个测试需求,使用到了在线分析处理(OLAP),现总结记录一下,也希望能帮到有相关问题的朋友. 1. 测试环境是DB2,通过ETL(数据抽取,数据转换,数据加载)技术将数据源数据加载到目标数据 ...

  9. [置顶] Android 高级开发 源码 UI 缓存 网络

    1.Android 源码剖析 性能优化  开源代码 2.Android UI效果源码 3.http://mzh3344258.blog.51cto.com/1823534/d-3 4.微信公众平台开发 ...

  10. TCP-IP and Advanced Topics 课程总结与报告

    课程总结 学习了四周十六课的课程,对每一课的知识点进行总结梳理,作出一个树状的知识网络图. 本课程虽然在深度上有所欠缺,但却更有利于结构上的梳理,加深总体上对网络的理解. 本课程从Internet出发 ...