private (bool isValidParentAccount, string validMessage) CheckParentAccount( IOrganizationService organizationService , Account parentAccount , Account childAccount , MessageNameEnum messageName , ITracingService tracingService) { tracingService.Trace("Inn1 {0}", parentAccount.Inn); tracingService.Trace("Inn2 {0}", childAccount.Inn); var checkResult = (isValidParentAccount : true, validMessage : string.Empty); //if (parentAccount.Inn == childAccount.Inn && parentAccount.CreatedOn > childAccount.CreatedOn) //{ // checkResult.isValidParentAccount = false; // checkResult.validMessage = "Родительская организация создана позже филиала"; //} //else if (!IsValidParentAccountKpp(organizationService, parentAccount)) { checkResult.isValidParentAccount = false; checkResult.validMessage = "КПП не принадлежит головной организации"; } //CR-1729 if (checkResult.isValidParentAccount && messageName == MessageNameEnum.Update && (parentAccount.Inn != childAccount.Inn)) { checkResult.isValidParentAccount = false; checkResult.validMessage = "ИНН головной и дочерней организации не совпадают"; } if (checkResult.isValidParentAccount && messageName == MessageNameEnum.Update && parentAccount.StateCode == AccountStateCodeEnum.Inactive) { checkResult.isValidParentAccount = false; checkResult.validMessage = "Головная организации неактивна";//CR-1729 } if (messageName == MessageNameEnum.Create && (parentAccount.Inn != childAccount.Inn)) { checkResult.isValidParentAccount = false; checkResult.validMessage = "ИНН дочерней и головной организации не совпадают";//CR-1729 } //CR-1906 if (parentAccount.AccountType == AccountTypeEnum.IP) { checkResult.isValidParentAccount = false; checkResult.validMessage = "Создание филиала к этой организации (ИП) невозможно";//CR-1906 } //CR-1905 if (parentAccount.ParentAccount != null) { checkResult.isValidParentAccount = false; checkResult.validMessage = "Создание филиала к этой организации невозможно";//CR-1905 } //if (parentAccount.AccountType != childAccount.AccountType) //{ // checkResult.isValidParentAccount = false; // checkResult.validMessage = "Создание филиала к этой организации невозможно - не совпадает типы"; //} return(checkResult); }
/// <summary> /// /// </summary> /// <param name="message">Message Name</param> /// <param name="entityLogicalName"></param> /// <param name="stage"></param> /// <param name="executionMode"></param> /// <param name="filteringAttributes">Comma separated list of attributes that will trigger this step. Leave null for all attributes.</param> /// <param name="stepName"></param> /// <param name="executionOrder"></param> /// <param name="isolationModel"></param> public CrmPluginRegistrationAttribute( MessageNameEnum message, string entityLogicalName, StageEnum stage, ExecutionModeEnum executionMode, string filteringAttributes, string stepName, int executionOrder, IsolationModeEnum isolationModel ) : this(message.ToString(), entityLogicalName, stage, executionMode, filteringAttributes, stepName, executionOrder, isolationModel) { }