⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wssecurity.~pas

📁 企业ERP管理系统
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
end;

function TGuarder.GetPermissionID(const PermissionName: string): Integer;
begin
  with TADOCommand.Create(nil) do
  try
    Connection := CommonData.acnConnection;
    CommandText := 'SELECT :ID = ID FROM MSPermission WHERE Name = ''' + PermissionName + '''';
    with Parameters[0] do
    begin
      Direction := pdOutput;
      DataType := ftInteger;
      Execute;
      if not VarIsNull(Value) then Result := Value
      else Result := -1;
    end;
  finally
    Free;
  end;
end;

procedure TGuarder.RegisterAction(Action: TBasicAction;
  PermissionID: Integer);
begin
  FActionArray.Add(Integer(Action));
  FPmsArray.Add(PermissionID);
end;

procedure TGuarder.RegisterActions(Actions: array of TBasicAction;
  PermissionIDs: TIntegerDynArray);
var
  I: Integer;
begin
  for I := 0 to Length(Actions) do
    RegisterAction(Actions[I], PermissionIDs[I]);
end;

procedure TGuarder.RegisterActions(Actions: array of TBasicAction;
  PermissionNames: TStringDynArray);
var
  I: Integer;
begin
  for I := Low(Actions) to High(Actions) do
    RegisterAction(Actions[I], GetPermissionID(PermissionNames[I]));
end;

procedure TGuarder.UnRegisterAction(Action: TBasicAction);
var
  I: Integer;
begin
  I := Integer(Action);
  with FActionArray do
  begin
    I := IndexOf(I);
    if I < 0 then
      raise Exception.CreateFmt('Action %s has not been registered',
        [TBasicAction(Items[I]).Name]);
    RemoveItem(I);
  end;
  FPmsArray.RemoveItem(I)
end;

procedure TGuarder.DoActionExecute(Action: TBasicAction;
  var Handled: Boolean);
var
  Tmp: Integer;
begin
  Tmp := FActionArray.IndexOf(Action);
  if Tmp >= 0 then
  begin
    Handled := (FPmsArray.Items[Tmp] >= 0) and not HasPermission(FPmsArray.Items[Tmp]);
    if Handled then raise Exception.Create('操作未被授权,请联系管理员');
  end;
  if Assigned(FOldAppActionExecute) then FOldAppActionExecute(Action, Handled);
end;

function TGuarder.HasPermission(Action: TBasicAction): Boolean;
var
  Tmp: Integer;
begin
  Tmp := FActionArray.IndexOf(Action);
  if (Tmp >= 0) and (FPmsArray.Items[Tmp] >= 0) then
    Result := HasPermission(FPmsArray.Items[Tmp])
  else Result := True;
end;



function TGuarder.GetContractSLPrice: string;
var ADSTemp: TADODataSet;
begin
  if Connected then { TODO : 直接取得合同单价--MSSysParametar.name }
  begin
    ADSTemp := TADODataSet.Create(nil);
    ADSTemp.Connection := CommonData.acnConnection;
    with ADSTemp do
    begin
      close;
      CommandText := 'select * from MSSysParameter where ParaName like '
        + QuotedStr('%合同售价%');
      open;
      first;
      if Fieldbyname('ParaValues').IsNull then
           Result := '否'
      else Result := Fieldbyname('ParaValues').AsString;
    end;
  end;
end;

function TGuarder.GetLastadjustSLPrice: string;
var ADSTemp: TADODataSet;
begin
  if Connected then { TODO : 直接取得最新销售单价--MSSysParametar.name }
  begin
    ADSTemp := TADODataSet.Create(nil);
    ADSTemp.Connection := CommonData.acnConnection;
    with ADSTemp do
    begin
      close;
      CommandText := 'select * from MSSysParameter where ParaName like '
        + QuotedStr('%最新调价%');
      open;
      first;
      if Fieldbyname('ParaValues').IsNull then
           Result := '否'
      else Result := Fieldbyname('ParaValues').AsString;
    end;
  end;
end;

function TGuarder.GetLastSLPrice: string;
var ADSTemp: TADODataSet;
begin
  if Connected then { TODO : 直接取得最新销售单价--MSSysParametar.name }
  begin
    ADSTemp := TADODataSet.Create(nil);
    ADSTemp.Connection := CommonData.acnConnection;
    with ADSTemp do
    begin
      close;
      CommandText := 'select * from MSSysParameter where ParaName like '
        + QuotedStr('%当前客户最新售价%');
      open;
      first;
      if Fieldbyname('ParaValues').IsNull then
           Result := '否'
      else Result := Fieldbyname('ParaValues').AsString;
    end;
  end;
end;


function TGuarder.GetUseDiscountSLFlag: string;
var ADSTemp: TADODataSet;
begin
  if Connected then { TODO : 直接取得最新销售单价--MSSysParametar.name }
  begin
    ADSTemp := TADODataSet.Create(nil);
    ADSTemp.Connection := CommonData.acnConnection;
    with ADSTemp do
    begin
      close;
      CommandText := 'select * from MSSysParameter where ParaName like '
        + QuotedStr('%使用销售折扣%');
      open;
      first;
      if Fieldbyname('ParaValues').IsNull then
           Result := '否'
      else Result := Fieldbyname('ParaValues').AsString;
    end;
  end;
end;

function TGuarder.GetFillInPrintFlag: string;
var ADSTemp: TADODataSet;
begin
  if Connected then { TODO : 直接取得使用套打功能--MSSysParametar.name }
  begin
    ADSTemp := TADODataSet.Create(nil);
    ADSTemp.Connection := CommonData.acnConnection;
    with ADSTemp do
    begin
      close;
      CommandText := 'select * from MSSysParameter where ParaName like '
        + QuotedStr('%票据套打功能%');
      open;
      first;
      if Fieldbyname('ParaValues').IsNull then
           Result := '否'
      else Result := Fieldbyname('ParaValues').AsString;
    end;
  end;
end;

function TGuarder.GetRepeatPrintFlag: string;
var ADSTemp: TADODataSet;
begin
  if Connected then { TODO : 直接取得使用套打功能--MSSysParametar.name }
  begin
    ADSTemp := TADODataSet.Create(nil);
    ADSTemp.Connection := CommonData.acnConnection;
    with ADSTemp do
    begin
      close;
      CommandText := 'select * from MSSysParameter where ParaName like '
        + QuotedStr('%单据重打功能%');
      open;
      first;
      if Fieldbyname('ParaValues').IsNull then
           Result := '否'
      else Result := Fieldbyname('ParaValues').AsString;
    end;
  end;
end;

function TGuarder.GetExportCashACReckoningFlag: string;
var ADSTemp: TADODataSet;
begin
  if Connected then { TODO : 直接取得使导出对帐单标志--MSSysParametar.name }
  begin
    ADSTemp := TADODataSet.Create(nil);
    ADSTemp.Connection := CommonData.acnConnection;
    with ADSTemp do
    begin
      close;
      CommandText := 'select * from MSSysParameter where ParaName like '
        + QuotedStr('%导出对帐单%');
      open;
      first;
      if Fieldbyname('ParaValues').IsNull then
           Result := '否'
      else Result := Fieldbyname('ParaValues').AsString;
    end;
  end;
end;

function TGuarder.GetPrintCashACReckoningFlag: string;
var ADSTemp: TADODataSet;
begin
  if Connected then { TODO : 直接取得使打印对帐单标志--MSSysParametar.name }
  begin
    ADSTemp := TADODataSet.Create(nil);
    ADSTemp.Connection := CommonData.acnConnection;
    with ADSTemp do
    begin
      close;
      CommandText := 'select * from MSSysParameter where ParaName like '
        + QuotedStr('%打印对帐单%');
      open;
      first;
      if Fieldbyname('ParaValues').IsNull then
           Result := '否'
      else Result := Fieldbyname('ParaValues').AsString;
    end;
  end;
end;

function TGuarder.GetForeignCurrencyFlag: string;
var ADSTemp: TADODataSet;
begin
  if Connected then { TODO : 直接取得外币业务标志--MSSysParametar.name }
  begin
    ADSTemp := TADODataSet.Create(nil);
    ADSTemp.Connection := CommonData.acnConnection;
    with ADSTemp do
    begin
      close;
      CommandText := 'select * from MSSysParameter where ParaName like '
        + QuotedStr('%外币业务%');
      open;
      first;
      if Fieldbyname('ParaValues').IsNull then
           Result := '否'
      else Result := Fieldbyname('ParaValues').AsString;
    end;
  end;

end;

function TGuarder.GetContractPCPrice: string;
var ADSTemp: TADODataSet;
begin
  if Connected then { TODO : 直接取得合同单价--MSSysParametar.name }
  begin
    ADSTemp := TADODataSet.Create(nil);
    ADSTemp.Connection := CommonData.acnConnection;
    with ADSTemp do
    begin
      close;
      CommandText := 'select * from MSSysParameter where ParaName like '
        + QuotedStr('%合同进价%');
      open;
      first;
      if Fieldbyname('ParaValues').IsNull then
           Result := '否'
      else Result := Fieldbyname('ParaValues').AsString;
    end;
  end;
end;

function TGuarder.GetLastPCPrice: string;
var ADSTemp: TADODataSet;
begin
  if Connected then { TODO : 直接取得最新进价--MSSysParametar.name }
  begin
    ADSTemp := TADODataSet.Create(nil);
    ADSTemp.Connection := CommonData.acnConnection;
    with ADSTemp do
    begin
      close;
      CommandText := 'select * from MSSysParameter where ParaName like '
        + QuotedStr('%最新进价%');
      open;
      first;
      if Fieldbyname('ParaValues').IsNull then
           Result := '否'
      else Result := Fieldbyname('ParaValues').AsString;
    end;
  end;
end;

function TGuarder.GetLastadjustPCPrice: string;
var ADSTemp: TADODataSet;
begin
  if Connected then { TODO : 直接取得最新采购调价--MSSysParametar.name }
  begin
    ADSTemp := TADODataSet.Create(nil);
    ADSTemp.Connection := CommonData.acnConnection;
    with ADSTemp do
    begin
      close;
      CommandText := 'select * from MSSysParameter where ParaName like '
        + QuotedStr('%最新采购调价%');
      open;
      first;
      if Fieldbyname('ParaValues').IsNull then
           Result := '否'
      else Result := Fieldbyname('ParaValues').AsString;
    end;
  end;
end;

initialization
  CurrencyString := '';

finalization
  if FGuarder <> nil then FreeAndNil(FGuarder);

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -