zoukankan      html  css  js  c++  java
  • crm工作机会实体

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

        public class OpportunityHelper
        {
            public static readonly string entityName = "opportunity";
            public Guid opportunityId = Guid.Empty;

            /// <summary>
            /// 创建商机
            /// </summary>
            /// <param name="service">服务</param>
            /// <param name="accountId">潜在客户</param>
            public void Create(IOrganizationService service,Guid accountId)
            {
                Entity en = new Entity() { LogicalName = entityName };
                //主题
                en["name"] = "測试商机";
                //潜在客户
                en["customerid"] = new EntityReference() { LogicalName = entityName,Id = accountId };

                opportunityId = service.Create(en);
            }

            /// <summary>
            /// 计算商机的值
            /// </summary>
            /// <param name="service">服务</param>
            public decimal CalculateActualValueOpportunity(IOrganizationService service)
            {
                CalculateActualValueOpportunityRequest request = new CalculateActualValueOpportunityRequest();
                request.OpportunityId = opportunityId;

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

                return response.Value;

            }

            /// <summary>
            /// 更改商机为赢单
            /// 1: 正在进行,2: 暂候,3: 赢单,4: 已取消,5: 售完
            /// </summary>
            public void WinOpportunity(IOrganizationService service)
            {
                WinOpportunityRequest request = new WinOpportunityRequest();
                request.OpportunityClose = new Entity() { LogicalName = entityName,Id = opportunityId };
                request.Status = new OptionSetValue(3);
                service.Execute(request);
            }

            /// <summary>
            /// 更改商机为丢单
            /// 1: 正在进行,2: 暂候,3: 赢单,4: 已取消,5: 售完
            /// </summary>
            public void LoseOpportunity(IOrganizationService service)
            {
                LoseOpportunityRequest request = new LoseOpportunityRequest();
                request.OpportunityClose = new Entity() { LogicalName = entityName, Id = opportunityId };
                request.Status = new OptionSetValue(4);
                service.Execute(request);
            }

            /// <summary>
            /// 商机生成报价单
            /// </summary>
            /// <param name="service">服务</param>
            public void ToQuote(IOrganizationService service)
            {
                GenerateQuoteFromOpportunityRequest request = new GenerateQuoteFromOpportunityRequest();
                request.OpportunityId = opportunityId;
                //这些字段将会转换
                request.ColumnSet = new Microsoft.Xrm.Sdk.Query.ColumnSet("name", "customerid");
                GenerateQuoteFromOpportunityResponse response = (GenerateQuoteFromOpportunityResponse)service.Execute(request);
                //报价单实体
                Entity quoteEn = response.Entity;
            }

            /// <summary>
            /// 商机生成销售订单
            /// </summary>
            /// <param name="service">服务</param>
            public void ToSaleOrder(IOrganizationService service)
            {
                GenerateSalesOrderFromOpportunityRequest request = new GenerateSalesOrderFromOpportunityRequest();
                request.OpportunityId = opportunityId;
                //这些字段将会转换
                request.ColumnSet = new Microsoft.Xrm.Sdk.Query.ColumnSet("name", "customerid");
                GenerateSalesOrderFromOpportunityResponse response = (GenerateSalesOrderFromOpportunityResponse)service.Execute(request);
                //销售订单
                Entity saloorderEn = response.Entity;
            }

            /// <summary>
            /// 商机生成发票
            /// </summary>
            /// <param name="service">服务</param>
            public void ToInvoiceFrom(IOrganizationService service)
            {
                GenerateInvoiceFromOpportunityRequest request = new GenerateInvoiceFromOpportunityRequest();
                request.OpportunityId = opportunityId;
                //这些字段将会转换
                request.ColumnSet = new Microsoft.Xrm.Sdk.Query.ColumnSet("name", "customerid");
                GenerateInvoiceFromOpportunityResponse response = (GenerateInvoiceFromOpportunityResponse)service.Execute(request);
                //发票
                Entity invoiceFromEn = response.Entity;
            }

            /// <summary>
            /// 为目标值中指定的实体获取产品的数量小数值
            /// </summary>
            /// <param name="service">服务</param>
            /// <param name="productId">产品id</param>
            /// <param name="uoMId">单位id</param>
            public int GetQuantityDecimal(IOrganizationService service,Guid productId,Guid uoMId)
            {
                GetQuantityDecimalRequest request = new GetQuantityDecimalRequest();
                request.Target = new EntityReference() { LogicalName = entityName,Id = opportunityId };
                request.ProductId = productId;
                request.UoMId = uoMId;
                GetQuantityDecimalResponse response = (GetQuantityDecimalResponse)service.Execute(request);
                return response.Quantity;
            }

            /// <summary>
            /// 检索指定安全主体(用户或团队)对商机拥有的訪问权限
            /// </summary>
            /// <param name="service">服务</param>
            /// <param name="principal">用户或团队</param>
            public AccessRights RetrievePrincipalAccess(IOrganizationService service,EntityReference principal)
            {
                RetrievePrincipalAccessRequest request = new RetrievePrincipalAccessRequest();
                request.Target = new EntityReference() { LogicalName = entityName, Id = opportunityId };
                request.Principal = principal;
                RetrievePrincipalAccessResponse response = (RetrievePrincipalAccessResponse)service.Execute(request);
                return response.AccessRights;
            }

            /// <summary>
            /// 检索有权訪问商机的安全主体(用户或团队)及其对商机所拥有的訪问权限
            /// </summary>
            public void RetrieveSharedPrincipalsAndAccess(IOrganizationService service)
            {
                RetrieveSharedPrincipalsAndAccessRequest request = new RetrieveSharedPrincipalsAndAccessRequest();
                request.Target = new EntityReference() { LogicalName = entityName, Id = opportunityId };
                RetrieveSharedPrincipalsAndAccessResponse response =
                    (RetrieveSharedPrincipalsAndAccessResponse)service.Execute(request);
                if (response != null && response.PrincipalAccesses != null)
                {
                   foreach(PrincipalAccess pa in response.PrincipalAccesses)
                   {
                       //訪问权限
                       AccessRights accessRights = pa.AccessMask;
                       //用户或者团队的引用
                       EntityReference Principal = pa.Principal;
                   }
                }

            }

            /// <summary>
            /// 移除指定安全主体(用户或团队)对商机拥有的全部訪问权限。


            /// </summary>
            /// <param name="service">服务</param>
            /// <param name="revokee">用户或者团队</param>
            public void RevokeAccess(IOrganizationService service,EntityReference revokee)
            {
                RevokeAccessRequest request = new RevokeAccessRequest();
                request.Target = new EntityReference() { LogicalName = entityName, Id = opportunityId };
                request.Revokee = revokee;
                service.Execute(request);
            }

            /// <summary>
            /// 删除商机
            /// </summary>
            public void Delete(IOrganizationService service)
            {
                service.Delete(entityName, opportunityId);
            }
        }

  • 相关阅读:
    数学+高精度 ZOJ 2313 Chinese Girls' Amusement
    最短路(Bellman_Ford) POJ 1860 Currency Exchange
    贪心 Gym 100502E Opening Ceremony
    概率 Gym 100502D Dice Game
    判断 Gym 100502K Train Passengers
    BFS POJ 3278 Catch That Cow
    DFS POJ 2362 Square
    DFS ZOJ 1002/HDOJ 1045 Fire Net
    组合数学(全排列)+DFS CSU 1563 Lexicography
    stack UVA 442 Matrix Chain Multiplication
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5048200.html
Copyright © 2011-2022 走看看