Диплом: Автоматизация регистрации и обработки заявок на комплектующие для ПК в компании ООО "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);
142
private
{ Private declarations }
FDate1, FDate2 : TDateTime;
FDaysCount : Integer;
FK : Double;
FB : Double;
FProductID : Integer;
public
{ Public declarations }
property Date1 : TDateTime read FDate1;
property Date2 : TDateTime read FDate2;
property DaysCount : Integer read FDaysCount;
property K : Double read FK;
property B : Double read FB;
property ProductID : Integer read FProductID;
end;
var
fAnalyserParams: TfAnalyserParams;
implementation
{$R *.dfm}
uses udmData;
procedure TfAnalyserParams.bOkClick(Sender: TObject);
begin
//
143
FDate1 := DateTimePicker1.Date;
FDate2 := DateTimePicker2.Date;
if (VarIsNull(dblcbProduct.KeyValue) = true) then
raise Exception.Create('Необходимо выбрать товар');
FProductID := dblcbProduct.KeyValue;
if (FDate1 >= FDate2) then
raise Exception.Create('Дата начала периода должна быть меньше даны
окончания периода');
try
//
FDaysCount := StrToInt (eDaysCount.Text);
if (FDaysCount <= 0) then
raise Exception.Create('Прогнозируемый период должен быть больше
нуля');
except
//
raise Exception.Create('В поле "'+lDaysCount.Caption+'" может
находиться только целое положительное число');
Exit;
end;
try
//
FK := StrToFloat (eK.Text);
if (FK <= 0) or (FK >= 1) then
raise Exception.Create('Error Message');
except
144
//
raise Exception.Create('В поле "'+lK.Caption+'" может находиться
вещественное значение в интервале (0, 1)');
Exit;
end;
try
//
FB := StrToFloat (eB.Text);
if (FB <= 0) or (FB >= 1) then
raise Exception.Create('Error Message');
except
//
raise Exception.Create('В поле "'+lB.Caption+'" может находиться
вещественное значение в интервале (0, 1)');
Exit;
end;
ModalResult := mrOk;
end;
procedure TfAnalyserParams.FormCreate(Sender: TObject);
begin
//
FProductID := 0;
FDate1 := Now - 30;
FDate2 := Now;
FDaysCount := 7;
FK := 0.6;
eK.Text := FloatToStr(FK);
FB := 0.7;
eB.Text := FloatToStr(FB);
145
eDaysCount.Text := IntToStr (FDaysCount);
DateTimePicker1.Date := FDate1;
DateTimePicker2.Date := FDate2;
end;
procedure TfAnalyserParams.FormKeyPress(Sender: TObject; var Key: Char);
begin
//
if (Key = #27) then Close;
end;
end.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)