/// <summary> /// /// </summary> /// <param name="storage"></param> /// <param name="accountOrganization"></param> /// <param name="user"></param> /// <param name="checkLogic">Флаг проверки бизнес-логикой возможности удаления связи места хранения и организации. /// При значении false будет выполнена только проверка прав.</param> public void CheckPossibilityToRemoveAccountOrganization(Storage storage, AccountOrganization accountOrganization, User user, bool checkLogic = true) { CheckPermissionToPerformOperation(storage, user, Permission.Storage_AccountOrganization_Remove); if (checkLogic) { // Проверяем наличие товаров данной организации на данном складе var IsAvailability = articleAvailabilityService.IsExtendedArticleAvailability(storage.Id, accountOrganization.Id, DateTime.Now); ValidationUtils.Assert(IsAvailability == false, string.Format("Невозможно удалить связь. На месте хранения «{0}» имеются товары, принадлежащие организации «{1}».", storage.Name, accountOrganization.ShortName)); } }
/// <summary> /// Проверка на возможность удаления связи "Собственная организация - МХ" /// </summary> /// <param name="organization"></param> /// <returns></returns> private void CheckPossibilityToDeleteAccountOrganizationToStorageLink(AccountOrganization organization, Storage storage) { // Проверяем наличие товаров данной организации на данном складе var isAvailability = articleAvailabilityService.IsExtendedArticleAvailability(storage.Id, organization.Id, DateTime.Now); ValidationUtils.Assert(isAvailability == false, string.Format("Невозможно удалить связь. На месте хранения «{0}» имеются товары, принадлежащие организации «{1}».", storage.Name, organization.ShortName)); var receiptWaybillList = receiptWaybillRepository.GetList(organization, storage); GetExceptionString(receiptWaybillList, 3, "приходной накладной", "и еще в {0} приходных накладных", "Невозможно удалить связанное место хранения, так как оно используется в"); var movementWaybillList = movementWaybillRepository.GetList(organization, storage); GetExceptionString(movementWaybillList, 3, "накладной перемещения", "и еще в {0} накладных перемещения", "Невозможно удалить связанное место хранения, так как оно используется в"); var changeOwnerWaybillList = changeOwnerWaybillRepository.GetList(organization, storage); GetExceptionString(changeOwnerWaybillList, 3, "накладной смены собственника", "и еще в {0} накладных смены собственника", "Невозможно удалить связанное место хранения, так как оно используется в"); var writeoffWaybillList = writeoffWaybillRepository.GetList(organization, storage); GetExceptionString(writeoffWaybillList, 3, "накладной списания", "и еще в {0} накладных списания", "Невозможно удалить связанное место хранения, так как оно используется в"); var expenditureWaybillList = expenditureWaybillRepository.GetList(organization, storage); GetExceptionString(expenditureWaybillList, 3, "накладной реализации", "и еще в {0} накладных реализации", "Невозможно удалить связанное место хранения, так как оно используется в"); var returnFromClientWaybillList = returnFromClientWaybillRepository.GetList(organization, storage); GetExceptionString(returnFromClientWaybillList, 3, "накладной возврата от клиента", "и еще в {0} накладных возврата от клиента", "Невозможно удалить связанное место хранения, так как оно используется в"); }