procedure CheckViewOnBeforeCheckViewEdit(Sender: TObject; AEditType: TEditType; AObjectBef, AObjectAft: TObject; var i, CategCode, CurrencyCode, dishpresent: integer;
it: TCheckItem;
Categ: TClassificatorGroup;
currsum: double;
begin
currsum := 0; // для проверки оплаты
CurrencyCode := 10; //код валюты
CategCode := 9; // категория контролируемых блюд
dishpresent := 0; //для проверки блюд
Categ := TClassificatorGroup(getitemBycodeNum('Classificato rGroups', CategCode));
// проверка наличия контролируемых блюд в заказе
for i := 0 to RKCheck.CurrentOrder.Sessions.LinesCount - 1 do begin
it := RKCheck.CurrentOrder.Sessions.Lines[i];
if SYS.ObjectInheritsFrom(TObject(it), 'TDish') then
if Categ.IsChild(it.RefItem) then
dishpresent := dishpresent + 1;
end;
//проверка наличия оплаты нужной валютой
for i := 0 to RKCheck.CurrentOrder.Sessions.LinesCount - 1 do begin
it := RKCheck.CurrentOrder.Sessions.Lines[i];
if SYS.ObjectInheritsFrom(TObject(it), 'TPayLine') then
if (it.Code = CurrencyCode) then
currsum := currsum + 1;
end;
// контроль при оплате
if SYS.ObjectInheritsFrom(AObjectAft, 'TPayLine') then
if dishpresent > 0 then
if (TPayLine(AObjectAft).code = CurrencyCode) then
else if currsum > 0 then
AAllow:= True
else
begin
AAllow := false;
AMessage := 'Данная операция недоступна!';
end;
end;