Skip to content

Commit 57ff99b

Browse files
author
Matt Barnes
committed
Fixed a bug where existing null or empty string in target attribute would prevent auto number creation
1 parent e106044 commit 57ff99b

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

AutoNumber/GetNextAutoNumber.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ protected void Execute(LocalPluginContext context)
6767
foreach (Guid autoNumberId in autoNumberIdList)
6868
{
6969
Entity autoNumber = context.OrganizationService.Retrieve("cel_autonumber", autoNumberId, true);
70+
string targetAttribute = autoNumber.GetAttributeValue<string>("cel_attributename");
7071

7172
if ((autoNumber.Contains("cel_conditionaloptionset") && (!Target.Contains(autoNumber.GetAttributeValue<string>("cel_conditionaloptionset")) || Target.GetAttributeValue<OptionSetValue>(autoNumber.GetAttributeValue<string>("cel_conditionaloptionset")).Value != autoNumber.GetAttributeValue<int>("cel_conditionalvalue"))))
7273
{
@@ -76,21 +77,21 @@ protected void Execute(LocalPluginContext context)
7677
//{
7778
// continue; // Continue, if this is a conditional lookup
7879
//}
79-
else if (Target.Contains(autoNumber.GetAttributeValue<string>("cel_attributename")))
80+
else if (Target.Contains(targetAttribute) && !String.IsNullOrWhiteSpace(Target.GetAttributeValue<string>(targetAttribute)))
8081
{
8182
continue; // Continue, so we don't overwrite an existing value
8283
}
8384

8485
// Generate number and insert into Target Record
85-
Target[autoNumber.GetAttributeValue<string>("cel_attributename")] = String.Format("{0}{1}{2}", ReplaceParameters(autoNumber.GetAttributeValue<string>("cel_prefix"), Target, context.OrganizationService),
86-
autoNumber.GetAttributeValue<int>("cel_nextnumber").ToString("D" + autoNumber.GetAttributeValue<int>("cel_digits")),
87-
ReplaceParameters(autoNumber.GetAttributeValue<string>("cel_suffix"), Target, context.OrganizationService));
86+
Target[targetAttribute] = String.Format("{0}{1}{2}", ReplaceParameters(autoNumber.GetAttributeValue<string>("cel_prefix"), Target, context.OrganizationService),
87+
autoNumber.GetAttributeValue<int>("cel_nextnumber").ToString("D" + autoNumber.GetAttributeValue<int>("cel_digits")),
88+
ReplaceParameters(autoNumber.GetAttributeValue<string>("cel_suffix"), Target, context.OrganizationService));
8889

8990
// Increment next number in db
9091
Entity updatedAutoNumber = new Entity("cel_autonumber");
9192
updatedAutoNumber.Id = autoNumber.Id;
9293
updatedAutoNumber["cel_nextnumber"] = autoNumber.GetAttributeValue<int>("cel_nextnumber") + 1;
93-
updatedAutoNumber["cel_preview"] = Target[autoNumber.GetAttributeValue<string>("cel_attributename")]; // fix the preview
94+
updatedAutoNumber["cel_preview"] = Target[targetAttribute]; // fix the preview
9495

9596
context.OrganizationService.Update(updatedAutoNumber);
9697
}

0 commit comments

Comments
 (0)