zoukankan      html  css  js  c++  java
  • Quote Helper

    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);
         }
    }
  • 相关阅读:
    <转>jmeter(十七)目录结构
    <转>jmeter(十六)配置元件之计数器
    <转>jmeter(十五)函数助手
    电商系统处理
    小程序web-view组件
    微信小程序中target与currentTarget
    小程序中navigator和wx.navigateTo,wx.redirectTo,wx.reLaunch,wx.switchTab,wx.navigateBack的用法
    怎么设置登录名 登陆后只能看到和操作一个数据库 这个用户不能看到其他的数据库
    安装和卸载windows服务程序
    sqlserver字符串多行合并为一行
  • 原文地址:https://www.cnblogs.com/bennylam/p/9920617.html
Copyright © 2011-2022 走看看