Quantcast
Channel: Microsoft Dynamics CRM Forum - Recent Threads
Viewing all articles
Browse latest Browse all 82002

How I can update total credit limits on account

$
0
0

Hello Everyone,

I have crate a custom field on account called "Total Credit limit". I want to write plugin to calculate sum of all related contact credit limits. when a new contact create.

How I can get "parentcustomerid" id ?

My logic is :

public void Execute(IServiceProvider serviceProvider)
{

// Obtain the execution context from the service provider.
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

// user below tracingService object for tracing debuggin information in error dialgoue
//Extract the tracing service for use in debugging sandboxed plug-ins.
ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));

// Obtain the organization service reference.
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);

if (context.MessageName == "Create")
{
// The InputParameters collection contains all the data passed in the message request.
if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
{
Entity entity = (Entity)context.InputParameters["Target"];

if (entity.LogicalName != "Contact")
return;
try
{
ConditionExpression condition1 = new ConditionExpression();
condition1.AttributeName = "parentcustomerid";
condition1.Operator = ConditionOperator.Equal;
condition1.Values.Add(??);

ConditionExpression conditon2 = new ConditionExpression();
conditon2.AttributeName = "statuscode";
conditon2.Operator = ConditionOperator.Equal;
conditon2.Values.Add(1);

FilterExpression filter1 = new FilterExpression();
filter1.Conditions.Add(condition1);
filter1.Conditions.Add(conditon2);

QueryExpression query = new QueryExpression("contact");
query.ColumnSet.AddColumns("creditlimit", "parentcustomerid");
query.Criteria.AddFilter(filter1);

EntityCollection result1 = service.RetrieveMultiple(query);
int count = result1.Entities.Count;

decimal sum = 0;
foreach (var c in result1.Entities)
{
sum += ((Money)c["creditlimit"]).Value;
}
Entity account = new Entity("account");
account.Id = ??;
account["new_totalcreditlimit"] = new Money(sum);
service.Update(account);
}
catch (Exception ex)
{
throw ex;
}
}
}

}

 Thank you.


Viewing all articles
Browse latest Browse all 82002

Latest Images

Trending Articles



Latest Images