Дипломная работа: Автоматизация регистрации и обработки заявок на комплектующие для ПК в компании ООО "SevStar"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
137
var
//
UserKey, UserTypeKey : Integer;
CI : TConnectionInfo;
Blocked : Boolean;
begin
//
UserKey := GetUserKey (User, Password, Blocked, UserTypeKey);
if (UserTypeKey <> 1) and (UserTypeKey <> 2) and (UserTypeKey <> 9)
then
raise Exception.Create('Данному типу пользователей доступ закрыт');
if (Blocked = True) then raise Exception.Create('Вход в систему
невозможен. Ваш аккаунт заблокирован.');
valid := UserKey > 0;
if (valid = False) then
raise Exception.Create('Неверная пара логин/пароль.');
if valid = true then
begin
CI := ConnectionList.GetConnectionKey(GetCurrentThreadId);
CI.UserKey := UserKey;
CI.UserTypeKey := UserTypeKey;
end;
end;
procedure TdmServer.DSServerClassGetClass(DSServerClass:
TDSServerClass;
var PersistentClass: TPersistentClass);
begin
//
PersistentClass := udssmRemoteData.TdssmRemoteData;
end;
138
procedure TdmServer.DSTCPServerTransportConnect(
Event: TDSTCPConnectEventObject);
var
//
CI : TConnectionInfo;
begin
//
CI := ConnectionList.AddConnection(Windows.GetCurrentThreadId);
CI.IP := Event.Channel.ChannelInfo.ClientInfo.IpAddress;
CI.Channel := Event.Channel;
end;
procedure TdmServer.DSTCPServerTransportDisconnect(
Event: TDSTCPDisconnectEventObject);
begin
//
ConnectionList.DelConnection(GetCurrentThreadId);
end;
procedure TdmServer.SendMessage (Email : string; Subject : string; Msg :
TStringList);
var
ServerAddress : String; ServerPort : Integer; Login : String; Password : String;
Q : TADOQuery;
IdSMTP : TIdSMTP;
IdMsg : TIdMessage;
IdText : TIdText;
begin
//
Q := dmServer.GetQuery('select * from Параметры where Код = 1');
139
try
ServerAddress := Trim(Q.FieldByName ('Email_Адрес_сервера').Value);
Login := Trim(Q.FieldByName ('Email').Value);
Password := Q.FieldByName ('Email_Пароль').Value;
ServerPort := Q.FieldByName ('Email_Порт').AsInteger;
Email := Trim(Email);
if (Email = '') then
raise Exception.Create('Email получателя не задан');
if (ServerPort <= 0) then
raise Exception.Create('Порт почтового сервера не задан. См.
"Параметры"');
if (ServerAddress = '') then
raise Exception.Create('Адрес почтового сервера не задан. См.
"Параметры"');
if (Login = '') then
raise Exception.Create('Адрес электронной почты не задан. См.
"Параметры"');
if (Password = '') then
raise Exception.Create('Пароль для электронной почты не задан. См.
"Параметры"');
IdSMTP := TIdSMTP.Create(nil);
try
IdSMTP.Disconnect;
IdSMTP.Port := ServerPort;
IdSMTP.Host := ServerAddress;
IdSMTP.AuthType := satDefault;
IdSMTP.Username := Login;
IdSMTP.Password := Password;
IdSMTP.ConnectTimeout := 1000;
IdSMTP.Connect;
140
IdMsg := TIdMessage.Create (nil);
try
IdMsg.Subject := Subject; //текст темы сообщения
IdMsg.ContentType := 'multipart/mixed; charset=windows-1251';
IdMsg.Recipients.EMailAddresses := Email; //указываем адрес
получателя
IdMsg.From.Address := Login; //указываем автора письма
IdMsg.Date := Now; //дата отправки письма может
быть любой
IdText := TIdText.Create(IdMsg.MessageParts, Msg);
try
IdText.CharSet := 'windows-1251';
IdSMTP.Send (IdMsg);
finally
IdText.Free;
end;
finally
//
IdMsg.Free;
end;
finally
IdSMTP.Free;
end;
finally
Q.Free;
end;
end;
141
end.
unit ufAnalyserParams;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls,
Vcl.DBCtrls;
type
TfAnalyserParams = class(TForm)
bOk: TButton;
bCancel: TButton;
DateTimePicker1: TDateTimePicker;
Label1: TLabel;
DateTimePicker2: TDateTimePicker;
Label2: TLabel;
eDaysCount: TEdit;
lDaysCount: TLabel;
eK: TEdit;
lK: TLabel;
lB: TLabel;
eB: TEdit;
Label3: TLabel;
dblcbProduct: TDBLookupComboBox;
procedure FormCreate(Sender: TObject);
procedure bOkClick(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
Источник: https://baza.diplomsite.ru/previewfile/2206