using System;
using Microsoft.Xrm.Sdk;
using Microsoft.Crm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Query;
/// <summary>
/// 销售合同
/// </summary>
public class ContractHelper
{
public static readonly string entityName =
"contract";
public Guid contractId =
Guid.Empty;
public IOrganizationService service;
/// <summary>
/// 创建销售合同
/// </summary>
public void Create()
{
Entity en =
new Entity() { LogicalName =
entityName };
en["title"] =
"销售合同测试";
contractId =
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 =
contractId };
request.Assignee =
assignee;
AssignResponse response =
(AssignResponse)service.Execute(request);
}
/// <summary>
/// 取消合同
/// </summary>
/// <param name="status">取消的状态</param>
public void CancelContract(
int status)
{
CancelContractRequest request =
new CancelContractRequest();
request.ContractId =
contractId;
request.CancelDate =
DateTime.Now;
request.Status =
new OptionSetValue(status);
CancelContractResponse response =
(CancelContractResponse)service.Execute(request);
}
/// <summary>
/// 复制合同
/// </summary>
public void CloneContract()
{
CloneContractRequest request =
new CloneContractRequest();
request.ContractId =
contractId;
request.IncludeCanceledLines =
true;
CloneContractResponse response =
(CloneContractResponse)service.Execute(request);
//销售合同
Entity contractEn =
response.Entity;
}
/// <summary>
/// 续订合同
/// </summary>
public void RenewContract()
{
RenewContractRequest request =
new RenewContractRequest();
request.ContractId =
contractId;
request.IncludeCanceledLines =
true;
//合同的状态
request.Status =
0;
RenewContractResponse response =
(RenewContractResponse)service.Execute(request);
//销售合同
Entity contractEn =
response.Entity;
}
/// <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 =
contractId };
request.PrincipalAccess =
new PrincipalAccess() { AccessMask = accessMask, Principal =
principal };
GrantAccessResponse response =
(GrantAccessResponse)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 =
contractId };
request.Revokee =
revokee;
RevokeAccessResponse response =
(RevokeAccessResponse)service.Execute(request);
}
/// <summary> ///
/// 删除销售合同 ///
/// </summary>
public void Delete() { service.Delete(entityName, contractId); }
}
转载于:https://www.cnblogs.com/bennylam/p/9921345.html
相关资源:数据结构—成绩单生成器