Добрый день! Подскажите, пожалуйста, в чем может быть ошибка????? Есть такая задача: необходимо удалять из резерва щиты по заданному клиенту. Есть очередь из четырех позиций. В этой очереди записываем ID компании, которая зарезервировала рекламный щит. Например, компания отказалась от всех своих резервов и соответственно надо удалить из очереди эту компанию. Процесс запускается из карточки клиента по кнопке из Действия. Делаем это следующим образом:
в карточке редактирования клиента в методе прописываем
showGrafInfo: function() {
var AccountId = this.get("Id");
var processArgs = {
sysProcessName: "GroupDelete",
parameters: {
IDClient: AccountId
}
};
ProcessModuleUtilities.executeProcess(processArgs);
},
getActions: function() {
var actionMenuItems = this.callParent(arguments);
actionMenuItems.addItem(this.getActionsMenuItem({
"Type": "Terrasoft.MenuSeparator",
"Caption": ""
}));
actionMenuItems.addItem(this.getActionsMenuItem({
"Caption": this.get("Resources.Strings.GroupDelete"),
"Tag": "showGrafInfo"
}));
actionMenuItems.addItem(this.getActionsMenuItem({
"Type": "Terrasoft.MenuSeparator",
"Caption": ""
}));
return actionMenuItems;
}
Процесс пишем на C#:
EntitySchema UsrPlacementsschema = UserConnection.EntitySchemaManager.GetInstanceByName("UsrPlacements"); //выбираем из таблицы UsrPlacements
EntitySchemaQuery UsrPlacementsesq = new EntitySchemaQuery(UsrPlacementsschema);
UsrPlacementsesq.AddAllSchemaColumns();
var filter1 = UsrPlacementsesq.CreateFilterWithParameters(FilterComparisonType.Equal, "UsrReserve1", IDClient);
var filter2 = UsrPlacementsesq.CreateFilterWithParameters(FilterComparisonType.Equal, "UsrReserve2", IDClient);
var filter3 = UsrPlacementsesq.CreateFilterWithParameters(FilterComparisonType.Equal, "UsrReserve3", IDClient);
var filter4 = UsrPlacementsesq.CreateFilterWithParameters(FilterComparisonType.Equal, "UsrReserve4", IDClient);
// Объединить фильтры в коллекции логической операцией OR
UsrPlacementsesq.Filters.LogicalOperation = LogicalOperationStrict.Or;
// Добавить фильтры в запрос
UsrPlacementsesq.Filters.Add(filter1);
UsrPlacementsesq.Filters.Add(filter2);
UsrPlacementsesq.Filters.Add(filter3);
UsrPlacementsesq.Filters.Add(filter4);
EntityCollection Placementsentities = UsrPlacementsesq.GetEntityCollection(UserConnection);
foreach (Entity Placement in Placementsentities) {
if (Placement.GetTypedColumnValue("UsrReserve1Id")==IDClient);
{
Placement.SetColumnValue("UsrReserve1Id", null);
Placement.SetColumnValue("UsrResPrice1", 0);
Placement.SetColumnValue("UsrResDate1", "");
Placement.Save();
}
if (Placement.GetTypedColumnValue("UsrReserve2Id")==IDClient);
{
Placement.SetColumnValue("UsrReserve2Id", null);
Placement.SetColumnValue("UsrResPrice2", 0);
Placement.SetColumnValue("UsrResDate2", "");
Placement.Save();
}
if (Placement.GetTypedColumnValue("UsrReserve3Id")==IDClient);
{
Placement.SetColumnValue("UsrReserve3Id", null);
Placement.SetColumnValue("UsrResPrice3", 0);
Placement.SetColumnValue("UsrResDate3", "");
Placement.Save();
}
if (Placement.GetTypedColumnValue("UsrReserve4Id")==IDClient);
{
Placement.SetColumnValue("UsrReserve4Id", null);
Placement.SetColumnValue("UsrResPrice4", 0);
Placement.SetColumnValue("UsrResDate4", "");
Placement.Save();
}
}
return true;
В параметрах прописали аргумент IDClient - уникальный идентификатор. Процесс запускается, проблема в том, что если в очереди (UsrReserve1, UsrReserve2, UsrReserve3, UsrReserve4) стоят разные компании, то они удаляются все, а не только та компания, которая нам необходима. Помогите, пожалуйста разобраться в чем неточность.... Спасибо!