using System;

    using Microsoft.Xrm.Sdk;

    using Microsoft.Crm.Sdk.Messages;

    using Microsoft.Xrm.Sdk.Query;

/// <summary>

    /// 报价单

    /// </summary>

    public class QuoteHelper

    {

        public static readonly string entityName = "quote";

        public Guid quoteId = Guid.Empty;

        public IOrganizationService service;

/// <summary>

        /// 创建报价单

        /// </summary>

        public void Create(Guid accountId)

        {

            Entity en = new Entity() { LogicalName = entityName };

            en["name"] = "报价单測试";

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

            quoteId = service.Create(en);

        }

/// <summary>

        /// 创建报价单及其相关报价单具体信息

        /// </summary>

        /// <param name="childEn">报价单具体信息</param>

        public void CompoundCreate(EntityCollection childEn)

        {

            CompoundCreateRequest request = new CompoundCreateRequest();

            request.Entity = new Entity() { LogicalName = entityName };

            request.ChildEntities = childEn;

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

            quoteId = response.Id;

        }

/// <summary>

        /// 将报价单分派给其它用户或团队

        /// </summary>

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

        public void Assign(EntityReference assignee)

        {

            AssignRequest request = new AssignRequest();

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

            request.Assignee = assignee;

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

        }

/// <summary>

        /// 指定结束报价单

        /// </summary>

        /// <param name="status">结束的状态值</param>

        public void CloseQuote(int status)

        {

            CloseQuoteRequest request = new CloseQuoteRequest();

            request.QuoteClose = new Entity() { LogicalName = entityName,Id = quoteId };

            request.Status = new OptionSetValue(status);

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

        }

/// <summary>

        /// 将报价单转换为销售订单

        /// </summary>

        public Entity ConvertQuoteToSalesOrder()

        {

            ConvertQuoteToSalesOrderRequest request = new ConvertQuoteToSalesOrderRequest();

            request.QuoteId = quoteId;

            request.ColumnSet = new Microsoft.Xrm.Sdk.Query.ColumnSet("name","accountid");

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

            //销售订单

            Entity solrorderEn = response.Entity;

            return solrorderEn;

        }

/// <summary>

        /// 为目标值中指定的实体获取产品的数量小数值

        /// </summary>

        /// <param name="productId">产品id</param>

        /// <param name="uoMId">单位id</param>

        public int GetQuantityDecimal(Guid productId, Guid uoMId)

        {

            GetQuantityDecimalRequest request = new GetQuantityDecimalRequest();

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

            request.ProductId = productId;

            request.UoMId = uoMId;

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

            return response.Quantity;

        }

/// <summary>

        /// 从商机中检索产品并将其拷贝到报价单

        /// </summary>

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

        public void GetQuoteProductsFromOpportunity(Guid opportunityId)

        {

            GetQuoteProductsFromOpportunityRequest request = new GetQuoteProductsFromOpportunityRequest();

            request.OpportunityId = opportunityId;

            request.QuoteId = quoteId;

            GetQuoteProductsFromOpportunityResponse response =

                (GetQuoteProductsFromOpportunityResponse)service.Execute(request);

        }

/// <summary>

        /// 与其它安全主体(用户或团队)共享报价单

        /// </summary>

        /// <param name="accessMask">訪问权限</param>

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

        public void GrantAccessRequest(AccessRights accessMask,EntityReference principal)


        {

            GrantAccessRequest request = new GrantAccessRequest();

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

            request.PrincipalAccess = new PrincipalAccess() { AccessMask = accessMask,Principal = principal };

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

        }

/// <summary>

        /// 将报价单的状态设置为“草稿”

        /// </summary>

        public void ReviseQuote()

        {

            ReviseQuoteRequest request = new ReviseQuoteRequest();

            request.QuoteId = quoteId;

            request.ColumnSet = new Microsoft.Xrm.Sdk.Query.ColumnSet("name","accountid");

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

            //草稿状态的报价单

            Entity quoteEn = response.Entity;

        }

/// <summary>

        /// 汇总或检索与指定的记录(客户或联系人)相关的全部报价单

        /// </summary>

        /// <param name="target">客户或联系人引用</param>

        /// <param name="query">查询条件</param>

        /// <param name="rollupType">关联类型</param>

        public void Rollup(EntityReference target, QueryBase query, RollupType rollupType)


        {

            RollupRequest request = new RollupRequest();

            request.Target = target;

            request.Query = query;

            request.RollupType = rollupType;

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

            EntityCollection entityCollection = response.EntityCollection;

        }

/// <summary>

        /// 删除报价单

        /// </summary>

        public void Delete()

        {

            service.Delete(entityName, quoteId);

        }

       

    }

crm操作报价单实体的更多相关文章

  1. crm操作货币实体

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Crm.Sdk.Messages; /// <summary> ...

  2. crm操作产品实体

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Crm.Sdk.Messages; /// <summary> ...

  3. crm操作约会实体

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

  4. crm操作发票实体

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Xrm.Sdk.Query;     using Microsoft.Cr ...

  5. Winform开发框架之客户关系管理系统(CRM)的报价单和销售单的处理

    在前面介绍了很多CRM相关的界面和实现思路的随笔文章,本篇继续介绍一下系统中用到的一些经验和技巧片段.本篇随笔主要介绍客户关系管理系统(CRM)的报价单和销售单的处理界面效果,使用列表内置的选择代替弹 ...

  6. crm工作机会实体

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Crm.Sdk.Messages; public class Opport ...

  7. Microsoft Dynamics CRM 2011 新建实体 需要注意的细节

    新建一个实体,需要红色框内的是否勾选的意义,可以进一步加深对CRM的理解.如图: 下面对部分的进行了自我的理解,不对的地方,还请大家指出来.互相学习. 1.CRM2011中,在活动方面加强的新特性包括 ...

  8. Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态

    Hibernate_day02 上节内容 今天内容 实体类编写规则 Hibernate主键生成策略 实体类操作 对实体类crud操作 添加操作 根据id查询 修改操作 删除操作 实体类对象状态(概念) ...

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

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

随机推荐

  1. linux下jenkins安装

    在安装jenkins之前.首先确认jdk和tomcat,maven已经配置好 详细配置方法,请看的我博客. jdk:jdk的安装与配置 tomcat:tomcat的安装与配置 maven:maven的 ...

  2. 微信小程序 多图上传解决方案

    为了使代码体积小  我这里将多图上传 封装到单独的一个js 页面的js调用他 我们看firhealth.js文件内容 // pages/home/home.js var upload = requir ...

  3. winform显示系统托盘,双击图片图表显示窗体,退出窗体是否提示

    private void Form1_FormClosing(object sender, FormClosingEventArgs e) { DialogResult result = Messag ...

  4. 1、libgdx简单介绍

    Libgdx 是一个跨平台和可视化的的开发框架.它当前支持Windows.Linux,Mac OS X.Android,IOS和HTML5作为目标平台. Libgdx同意你一次编写代码不经改动部署到多 ...

  5. java里面包的重要性-管理类文件

    包的必要性 包是用来给java源文件分门别类的,java中一个包在windows下就是一个文件夹.包的全限定名是从根文件夹開始的(\src文件夹)以点号作为分隔符,包名和包名之间使用点号隔开,java ...

  6. 项目记录22-- tolua基于lua框架事件派发

     每天晚上抽点时间写一点点就一点点,曾经不写博客可是如今.不为别的仅仅是为了告诉别人我还存在.         这几天在地铁上发现好多人都还在玩消除游戏,今天起码看到5个人,可是玩的版本号都不一样.看 ...

  7. 连载:面向对象葵花宝典:思想、技巧与实践(30) - SRP原则

    前面具体阐述了"高内聚低耦合"的整体设计原则.但怎样让设计满足这个原则,并非一件简单的事情.幸好各位前辈和大牛已经帮我们归纳总结出来了,这就是"设计原则"和&q ...

  8. SharePoint 创建网站地图树视图及格式枚举截图

    SharePoint 创建网站地图树视图及格式枚举截图         SharePoint首页隐藏掉左側导航以后,假设要以树视图呈现站点地图也非常easy.         仅仅须要复制v4.mas ...

  9. 2017-3-3 leetcod 1 35 448

    ACM退役了,接下来是考研的准备,刷刷leetcode保证不会生手,也算是调剂生活,初步计划是每天三题吧,希望可以坚持下去. 打算按照专题来做,先是Array....本来以为特别水,结果.... == ...

  10. Ubuntu16.04下沙盒数据导入到 Neo4j 数据库(图文详解)

    不多说,直接上干货! 参考博客 http://blog.csdn.net/u012318074/article/details/72793914   (表示感谢)  前期博客 Neo4j沙盒实验申请过 ...