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

        }

    }

crm操作销售订单实体的更多相关文章

  1. crm操作知识库文章实体

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Crm.Sdk.Messages;     using Microsoft ...

  2. crm操作报价单实体

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Crm.Sdk.Messages;     using Microsoft ...

  3. Netsharp快速入门(之11) 销售管理(开发销售订单工作区)

    作者:秋时 杨昶   时间:2014-02-15  转载须说明出处 4.3     销售订单开发 4.3.1  部件工作区设置 1.创建部件工作区,建工作区向导中要注意勾选组合并系部分.具体要建立的部 ...

  4. Netsharp快速入门(之13) 销售管理(单据流转 销售订单生成发货单)

    作者:秋时 杨昶   转载须说明出处 4.5     单据流转 4.5.1  单据流转的目的 单据流转主要为了实现业务关系的流转,并记录相互之间的关系.例如从销售订单生成销货单,两张单据之间有对应的关 ...

  5. Odoo开源ERP:功能模块操作-销售功能篇

    客户基础资料 1. 所有的客户基础资料,智云ERP开账启用时,期初的客户数据如果大于200条,可以批量导入: 2. 点“销售/订单/客户”菜单可以查看.编辑修改.搜索所有的客户基础资料: 3. 多层级 ...

  6. [置顶]生鲜配送管理系统_升鲜宝V2.0 销售订单汇总_采购任务分配功能_操作说明

    做好生鲜供应链系统,要注意三个方面,1.分拣 2 采购  3 库存,市面上做的比较成熟的功能,还是分拣这一块(按客户分拣.按订单分拣.按商品分类分拣.按商品分拣.按线路分拣.客户自由组合分拣)[下篇文 ...

  7. 转载]SAP囚徒 - 通过销售订单领用到成本中心,FI替代

    转载]SAP囚徒 - 通过销售订单领用到成本中心,FI替代   原文地址:SAP囚徒 - 通过销售订单领用到成本中心,FI替代实现不同成本中心记账科目不同作者:SAP囚徒 物品领用通常是库存管理的范畴 ...

  8. AR_销售订单收款基本操作(流程)

    2014-06-04 Created By BaoXinjian

  9. 为什么S/4HANA的销售订单创建会触发生产订单的创建

    调用S/4HANA销售订单创建函数SD_SALES_DOCU_MAINTAIN创建一个销售订单时,会触发生产订单的创建. 销售订单的每个行项目对应一个独立的生产订单,SD_SALES_DOCU_MAI ...

随机推荐

  1. 处理登录和cookie

    做法 1: 可以一步一步cookies,毫无疑问,这非常麻烦. import requests params = {'',''} r = requests.post('',params) r = re ...

  2. bzoj 3060[Poi2012]Tour de Byteotia 贪心+生成树

    Description 给定一个n个点m条边的无向图,问最少删掉多少条边能使得编号小于等于k的点都不在环上. Analysis 包含关键点的环中 包含从关键点连出的两条边 考虑我们删边删哪些边更优 根 ...

  3. Cython 一篇通

    Cython的类型 1 类型定义 1.1 定义一个C变量: 1.1.1 在Cython里定义一个C变量和C语言类似,不同的地方就是在声明的最前面要加上cdef,另外,末尾不用加分号";“如: ...

  4. Scrapy学习-20-数据收集

    Scrapy的数据收集功能 定义 Scrapy提供了方便的收集数据的机制.数据以key/value方式存储,值大多是计数值. 该机制叫做数据收集器(Stats Collector),可以通过 Craw ...

  5. Linux 之 CentOS练习

    CentOS练习 参考教程:[千峰教育] 一.安装配置CentOS 1.安装虚拟机:VirtualBox. (1)软件下载:https://www.virtualbox.org/. (2)一路点击下一 ...

  6. window下golang使用gRPC入门案例&net core客户端

    gRPC是google开源高性能分布式RPC框架,支持http/2 双向数据流传输及Protobuff,可以在任何环境下运行. 它可以有效地将数据中心内和跨数据中心的服务与可插拔支持进行负载均衡,跟踪 ...

  7. html5(历史管理)

    <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/h ...

  8. AC日记——一元三次方程求解 洛谷 P1024

    题目描述 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差 ...

  9. http错误种类及原因

    http://blog.csdn.net/dxykevin/article/details/50950878 [摘要]HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应 ...

  10. 洛谷——P2149 [SDOI2009]Elaxia的路线

    P2149 [SDOI2009]Elaxia的路线 题目描述 最近,Elaxia和w的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间.Elaxia和w每 ...