Диплом: Автоматизация представления данных о налогоплательщиках для ООО "Сибтрейд"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
106
procedure TKvartiraListForm.BitBtn2Click(Sender: TObject);
begin
CreatekvartiraForm('Добавление новой квартиры','0','','','','','',-1,-1,-1);
end;
procedure TKvartiraListForm.BitBtn4Click(Sender: TObject);
begin
if not DbGrid1.DataSource.DataSet.FieldByName('id').IsNull
then
begin
With AdoQuery2 do
begin
close;
SQL.clear;
SQl.add('SELECT kvartira.*, house.* FROM house INNER JOIN kvartira ON house.id =
kvartira.idhouse ');
SQL.Add(' WHERE kvartira.id =
'+DbGrid1.DataSource.DataSet.FieldbyName('id').AsString);
open;
end;
CreatekvartiraForm('Редактирование квартиры
'+AdoQuery2.FieldByName('kvartira.id').AsString,
AdoQuery2.FieldByName('kvartira.id').AsString,
AdoQuery2.FieldByName('podezd').AsString,
AdoQuery2.FieldByName('kvartira.nomer').AsString,
AdoQuery2.FieldByName('lschet').AsString,
AdoQuery2.FieldByName('squareobsh').AsString,
AdoQuery2.FieldByName('squaregil').AsString,
AdoQuery2.FieldByName('idhouse').Asinteger,
AdoQuery2.FieldByName('idstreet').AsInteger,
AdoQuery2.FieldByName('idTypesobstv').AsInteger);
end;
end;
procedure TKvartiraListForm.BitBtn7Click(Sender: TObject);
var
i:integer;
iduslugakvartira,iduslugakvartirap:integer;
stoim,okazano,summa,norma:Extended;
pereschet:boolean;
begin
If MessageBox(Handle,PChar('Произвести
начисления?'),PChar('Подтверждение'),MB_ICONINFORMATION+MB_YESNO+MB_DEFBUTTON2)=
IdYes
then
begin
////запрашиваем улуги квартир с необходимыми данными для рассчетов
With QueryNachisl1 do
begin
SQL.Clear;
SQl.add('SELECT DISTINCT uslugakvartira.id, uslugakvartira.entersaldo, usluga.id,
usluga.nam, usluga.idtypeuslug, usluga.edizm, usluga.norma,');
SQL.add('tarif.tarif, tarif.dataenter, uslugakvartira.idkvartira,
IIf(Count(propisk.id) Is Null,0,Count(propisk.id)) AS [countpropiska],
propisk.datepropend, kvartira.squaregil, kvartira.squareobsh');
SQL.add('FROM (kvartira INNER JOIN ((usluga INNER JOIN tarif ON usluga.id =
tarif.idusluga) INNER JOIN uslugakvartira ON usluga.id = uslugakvartira.idusluga)
ON kvartira.id = uslugakvartira.idkvartira) LEFT JOIN propisk ON kvartira.id =
propisk.idKvartira');
107
SQL.add('GROUP BY uslugakvartira.id, uslugakvartira.entersaldo, usluga.id,
usluga.nam, usluga.idtypeuslug, usluga.edizm, usluga.norma, tarif.tarif,
tarif.dataenter, uslugakvartira.idkvartira, propisk.datepropend,
kvartira.squaregil, kvartira.squareobsh');
SQl.add('HAVING (((propisk.datepropend) Is Null))');
SQL.add('ORDER BY uslugakvartira.id, usluga.nam, tarif.dataenter DESC');
open;
end;
//запрашиваем установленные в квартирах счетчики
With QueryNachisl2 do
begin
close;
SQL.Clear;
SQl.Add('SELECT priborkvartira.id, priborkvartira.idkvartira, pribor.idusluga');
SQL.add('FROM pribor INNER JOIN (kvartira INNER JOIN priborkvartira ON kvartira.id
= priborkvartira.idkvartira) ON pribor.id = priborkvartira.idpribor;');
open
end;
//запрашиваем начисления за последний месяц
With Querynachisl3 do
begin
close;
SQl.clear;
SQl.add('SELECTiduslugakvartira, Max(nachisl.datenachisl) AS maxdate FROM nachisl
GROUP BY nachisl.iduslugakvartira');
open;
end;
//ставим указатели на начало
QueryNachisl1.First;
QueryNachisl2.First;
//обнуляем предыдущий айди
iduslugakvartirap:=0;
//пошел цикл по всем данным услуг квартир
fori:=0 to QueryNachisl1.RecordCount-1 do
begin
//фиксируем текущий айди
iduslugakvartira:=QueryNachisl1.FieldByName('uslugakvartira.id').AsInteger;
//фильтруем счетчики
QueryNachisl2.Filtered:=false;
QueryNachisl2.Filter:='idkvartira =
'+QueryNachisl1.FieldByName('idkvartira').AsString+' AND idusluga =
'+QueryNachisl1.FieldByName('usluga.id').AsString;
QueryNachisl2.Filtered:=true;
//фильтруем последние начисления
QueryNachisl3.Filtered:=false;
QueryNachisl3.Filter:='iduslugakvartira = '+IntToStr(iduslugakvartira);
QueryNachisl3.Filtered:=true;
if (iduslugakvartira=iduslugakvartirap) OR (QueryNachisl2.RecordCount<>0)
then//если повтор данных или есть счетчик, то пропускаем.
begin
QueryNachisl1.Next;
end
else
begin
//проверяем предыдущие начисления по услуге квартиры
if QueryNachisl3.RecordCount<>0 then
begin
108
//проверяем были ли начисления для выбранной услуги квартиры в этом месяце
if Monthof(QueryNachisl3.FieldByName('maxdate').AsDateTime)=Monthof(now) then
begin
//если были, то грохаем их
With AdoQuery2 do
begin
close;
SQl.clear;
SQl.add('DELETE FROM nachisl WHERE iduslugakvartira = :iduslugakvartira AND
datenachisl = :datenachisl');
Parameters.ParamByName('iduslugakvartira').Value:=iduslugakvartira;
Parameters.ParamByName('datenachisl').Value:=QueryNachisl3.FieldByName('maxdate'
).AsDateTime;
ExecSQL;
end;
end;
end;
//успешно грохнули - производим новое начисление.
//снчала считаем сколько надо начислить
stoim:=QueryNachisl1.FieldByName('tarif').AsFloat;
norma:=QueryNachisl1.FieldByName('norma').AsFloat;
case QueryNachisl1.FieldByName('idtypeuslug').AsInteger of
1: okazano:=QueryNachisl1.FieldByName('squareobsh').AsFloat;//жилищная услуга -
по площади
2:
okazano:=norma*QueryNachisl1.FieldByName('countpropiska').AsFloat;//коммунальная
услуга
3: okazano:=norma;// прочее
end;
summa:=QueryNachisl1.FieldByName('tarif').AsFloat*okazano;
//затем добавляем начисление в базу данных
With AdoQuery2 do
begin
close;
SQl.Clear;
SQl.add('INSERT INTO nachisl (iduslugakvartira, datenachisl, stoim, okazano,
summa, typenachisl) ');
SQL.add('VALUES ( :iduslugakvartira, :datenachisl, :stoim, :okazano, :summa,
:typenachisl)');
Parameters.ParamByName('iduslugakvartira').Value:=iduslugakvartira;
Parameters.ParamByName('datenachisl').Value:=now;
Parameters.ParamByName('stoim').Value:=QueryNachisl1.FieldByName('tarif').AsFloa
t;
Parameters.ParamByName('okazano').Value:=okazano;
Parameters.ParamByName('summa').Value:=summa ;
Parameters.ParamByName('typenachisl').Value:='Авто';
EXECSQL;
end;
// тут было автоматическое увеличение входящего сальдо, неправильное
{ With AdoQuery2 do
begin
close;
SQl.clear;
SQl.Add('UPDATE uslugakvartira SET entersaldo = (entersaldo + :nachisl ) WHERE
id = :iduslugakvartira ');
Parameters.ParamByName('nachisl').Value:= summa;
Parameters.ParamByName('iduslugakvartira').Value:=iduslugakvartira;
EXECSQL;
109
end;}
QueryNachisl1.Next;
iduslugakvartirap:=iduslugakvartira;
end; //выход из условия пропуска (старый тариф или есть счетчик)
end;//выход и цикла по данным
Showmessage('Начисления произведены');
end;
end;
procedure TKvartiraListForm.DBGrid1DblClick(Sender: TObject);
begin
bitbtn4.Click;
end;
procedure TKvartiraListForm.DBGrid1TitleClick(Column: TColumn);
begin
if AdoQuery1.sort= Column.Field.FieldName + ' ASC' then AdoQuery1.Sort:=
Column.Field.FieldName+' DESC' else AdoQuery1.Sort:= Column.Field.FieldName+ '
ASC';
end;
procedure TKvartiraListForm.BitBtn8Click(Sender: TObject);
var
i,j:integer;
iduslugakvartira,iduslugakvartirap:integer;
stoim,okazano,summa,norma:Extended;
pereschet:boolean;
begin
If MessageBox(Handle,PChar('Произвести
начисления?'),PChar('Подтверждение'),MB_ICONINFORMATION+MB_YESNO+MB_DEFBUTTON2)=
IdYes
then
begin
//запрашиваем улуги квартир с необходимыми данными для рассчетов
With QueryNachisl1 do
begin
SQL.Clear;
SQl.add('SELECT DISTINCT uslugakvartira.id, uslugakvartira.entersaldo, usluga.id,
usluga.nam, usluga.idtypeuslug, usluga.edizm, usluga.norma,');
SQL.add('tarif.tarif, tarif.dataenter, uslugakvartira.idkvartira,
IIf(Count(propisk.id) Is Null,0,Count(propisk.id)) AS [countpropiska],
propisk.datepropend, kvartira.squaregil, kvartira.squareobsh');
SQL.add('FROM (kvartira INNER JOIN ((usluga INNER JOIN tarif ON usluga.id =
tarif.idusluga) INNER JOIN uslugakvartira ON usluga.id = uslugakvartira.idusluga)
ON kvartira.id = uslugakvartira.idkvartira) LEFT JOIN propisk ON kvartira.id =
propisk.idKvartira');
SQL.add('GROUP BY uslugakvartira.id, uslugakvartira.entersaldo, usluga.id,
usluga.nam, usluga.idtypeuslug, usluga.edizm, usluga.norma, tarif.tarif,
tarif.dataenter, uslugakvartira.idkvartira, propisk.datepropend,
kvartira.squaregil, kvartira.squareobsh');
SQl.add('HAVING (((propisk.datepropend) Is Null))');
SQL.add('ORDER BY uslugakvartira.id, usluga.nam, tarif.dataenter DESC');
open;
end;
//запрашиваем установленные в квартирах счетчики
With QueryNachisl2 do
begin
close;
SQL.Clear;
SQl.Add('SELECT priborkvartira.id, priborkvartira.idkvartira, pribor.idusluga');
110
SQL.add('FROM pribor INNER JOIN (kvartira INNER JOIN priborkvartira ON kvartira.id
= priborkvartira.idkvartira) ON pribor.id = priborkvartira.idpribor;');
open
end;
//запрашиваем последние начисления по квартирам.
With Querynachisl3 do
begin
close;
SQl.clear;
SQl.add('SELECTiduslugakvartira, Max(nachisl.datenachisl) AS maxdate FROM nachisl
GROUP BY nachisl.iduslugakvartira');
open;
end;
DBGrid1.DataSource.DataSet.First;
iduslugakvartirap:=0;
For j:=0 to dbgrid1.datasource.dataset.recordcount-1 do
begin
QueryNachisl1.Filtered:=false;
QueryNachisl1.Filter:='idkvartira =
'+DbGrid1.DataSource.DataSet.FieldByNAme('id').AsString;
QueryNachisl1.Filtered:=true;
QueryNachisl1.First;
QueryNachisl2.First;
fori:=0 to QueryNachisl1.RecordCount-1 do
begin
iduslugakvartira:=QueryNachisl1.FieldByName('uslugakvartira.id').AsInteger;
//Фильтруем счетчики
QueryNachisl2.Filtered:=false;
QueryNachisl2.Filter:='idkvartira =
'+QueryNachisl1.FieldByName('idkvartira').AsString+' AND idusluga =
'+QueryNachisl1.FieldByName('usluga.id').AsString;
QueryNachisl2.Filtered:=true;
//фильтруем последние начисления
QueryNachisl3.Filtered:=false;
QueryNachisl3.Filter:='iduslugakvartira = '+IntToStr(iduslugakvartira);
QueryNachisl3.Filtered:=true;
if (iduslugakvartira=iduslugakvartirap) OR (QueryNachisl2.RecordCount<>0)
then//если повтор или есть счетчик, то пропускаем.
begin
QueryNachisl1.Next;
end
else
begin
//проверяем предыдущие начисления по услуге квартиры
if QueryNachisl3.RecordCount<>0 then
begin
//проверяем были ли начисления для выбранной услуги квартиры в этом месяце
if Monthof(QueryNachisl3.FieldByName('maxdate').AsDateTime)=Monthof(now) then
begin
//если были, то грохаем их
With AdoQuery2 do
begin
close;
SQl.clear;
SQl.add('DELETE FROM nachisl WHERE iduslugakvartira = :iduslugakvartira AND
datenachisl = :datenachisl');
Parameters.ParamByName('iduslugakvartira').Value:=iduslugakvartira;
111
Parameters.ParamByName('datenachisl').Value:=QueryNachisl3.FieldByName('maxdate'
).AsDateTime;
ExecSQL;
end;
end;
end;
//успешно грохнули - производим новое начисление.
stoim:=QueryNachisl1.FieldByName('tarif').AsFloat;
norma:=QueryNachisl1.FieldByName('norma').AsFloat;
case QueryNachisl1.FieldByName('idtypeuslug').AsInteger of
1: okazano:=QueryNachisl1.FieldByName('squareobsh').AsFloat;//жилищная услуга -
по площади
2:
okazano:=norma*QueryNachisl1.FieldByName('countpropiska').AsFloat;//коммунальная
услуга
3: okazano:=norma;// прочее
end;
summa:=QueryNachisl1.FieldByName('tarif').AsFloat*okazano;
With AdoQuery2 do
begin
close;
SQl.Clear;
SQl.add('INSERT INTO nachisl (iduslugakvartira, datenachisl, stoim, okazano,
summa, typenachisl) ');
SQL.add('VALUES ( :iduslugakvartira, :datenachisl, :stoim, :okazano, :summa,
:typenachisl)');
Parameters.ParamByName('iduslugakvartira').Value:=iduslugakvartira;
Parameters.ParamByName('datenachisl').Value:=now;
Parameters.ParamByName('stoim').Value:=QueryNachisl1.FieldByName('tarif').AsFloa
t;
Parameters.ParamByName('okazano').Value:=okazano;
Parameters.ParamByName('summa').Value:=summa ;
Parameters.ParamByName('typenachisl').Value:='Авто';
EXECSQL;
end;
// тут было автоматическое увеличение входящего сальдо.
{ With AdoQuery2 do
begin
close;
SQl.clear;
SQl.Add('UPDATE uslugakvartira SET entersaldo = (entersaldo + :nachisl ) WHERE
id = :iduslugakvartira ');
Parameters.ParamByName('nachisl').Value:= summa;
Parameters.ParamByName('iduslugakvartira').Value:=iduslugakvartira;
EXECSQL;
end;}
QueryNachisl1.Next;
iduslugakvartirap:=iduslugakvartira;
end;
end;
end;
Showmessage('Начисления произведены');
end;
end;
end.
unit Kvartira;
112
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ExtCtrls, Grids, DBGrids, StdCtrls, Buttons, DBCtrls,
DB, ADODB, Menus, ComObj, shellapi, DateUtils;
type
TKvartiraForm = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
DBLookupComboBox1: TDBLookupComboBox;
Edit2: TEdit;
Edit3: TEdit;
Label11: TLabel;
Edit4: TEdit;
Edit5: TEdit;
BitBtn1: TBitBtn;
Panel3: TPanel;
Panel4: TPanel;
DBGrid1: TDBGrid;
Panel5: TPanel;
Panel6: TPanel;
DBGrid2: TDBGrid;
Panel7: TPanel;
Panel8: TPanel;
Panel9: TPanel;
Panel10: TPanel;
DBGrid3: TDBGrid;
DBGrid4: TDBGrid;
DBLookupComboBox2: TDBLookupComboBox;
BitBtn2: TBitBtn;
DataSource1: TDataSource;
DataSource2: TDataSource;
ADOTable1: TADOTable;
ADOTable2: TADOTable;
DBLookupComboBox3: TDBLookupComboBox;
DataSource3: TDataSource;
ADOTable3: TADOTable;
ADOQuery1: TADOQuery;
Uslugakvartira: TADOTable;
DataSource4: TDataSource;
Uslugakvartiraid: TAutoIncField;
Uslugakvartiraidusluga: TIntegerField;
Uslugakvartiraidkvartira: TIntegerField;
Uslugakvartiraentersaldo: TBCDField;
113
UslugakvartiraUslugaL: TStringField;
UslugakvartiraEdIzmL: TStringField;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
DataSource5: TDataSource;
priborkvartira: TADOTable;
priborkvartiraid: TAutoIncField;
priborkvartiraidkvartira: TIntegerField;
priborkvartiraidpribor: TIntegerField;
priborkvartirapokazanie: TIntegerField;
priborkvartiraPriborL: TStringField;
priborkvartiraUslugaL: TStringField;
DataSource6: TDataSource;
sobstvennik: TADOTable;
sobstvennikid: TAutoIncField;
sobstvennikidkvartira: TIntegerField;
sobstvennikidabonent: TIntegerField;
sobstvennikAbonentL: TStringField;
DataSource7: TDataSource;
propisk: TADOTable;
propiskid: TAutoIncField;
propiskdateprop: TDateTimeField;
propiskdatepropend: TDateTimeField;
propiskidabonent: TIntegerField;
propiskidKvartira: TIntegerField;
propiskAbonentL: TStringField;
propiskAbonentDateL: TStringField;
sobstvennikAbonentDateL: TStringField;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
BitBtn9: TBitBtn;
BitBtn10: TBitBtn;
sobstvennikdolya: TFloatField;
BitBtn11: TBitBtn;
BitBtn12: TBitBtn;
BitBtn13: TBitBtn;
TabSheet6: TTabSheet;
BitBtn14: TBitBtn;
BitBtn15: TBitBtn;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
priborkvartiraidusluga: TStringField;
Panel13: TPanel;
DataSource8: TDataSource;
Oplata: TADOTable;
Oplataid: TAutoIncField;
Oplataidkvartira: TIntegerField;
Oplataidsotr: TIntegerField;
Oplatadata: TDateTimeField;
Oplatasumma: TBCDField;
Oplatafioabonent: TWideStringField;
OplataSotrL: TStringField;
DBGrid6: TDBGrid;
BitBtn16: TBitBtn;
Tarif: TADOTable;
Tarifid: TAutoIncField;
Tarifidusluga: TIntegerField;
Tariftarif2: TBCDField;
Tarifdataenter2: TDateTimeField;
114
TarifUslugaL: TStringField;
abonent: TADOTable;
abonentid: TAutoIncField;
abonentFIO: TWideStringField;
abonentdateboth: TDateTimeField;
abonentseriapasp: TWideStringField;
abonentnomerpasp: TWideStringField;
abonentdateissue: TDateTimeField;
abonentvidanpasp: TWideStringField;
ADOQuery2: TADOQuery;
UslugakvartiraNachislsum: TFloatField;
Uslugakvartiraoutsaldo: TFloatField;
ADOQuery3: TADOQuery;
UslugakvartiraOplata: TFloatField;
ADOQuery2iduslugakvartira: TIntegerField;
ADOQuery2YEAR: TSmallintField;
ADOQuery2Month: TSmallintField;
ADOQuery2sumnachisl: TBCDField;
BitBtn17: TBitBtn;
BitBtn18: TBitBtn;
QueryNachisl1: TADOQuery;
QueryNachisl2: TADOQuery;
QueryNachisl3: TADOQuery;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBLookupComboBox1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn10Click(Sender: TObject);
procedure BitBtn9Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure BitBtn13Click(Sender: TObject);
procedure BitBtn12Click(Sender: TObject);
procedure BitBtn11Click(Sender: TObject);
procedure BitBtn14Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure BitBtn15Click(Sender: TObject);
procedure DBGrid1TitleClick(Column: TColumn);
procedure DBGrid6TitleClick(Column: TColumn);
procedure DBGrid2TitleClick(Column: TColumn);
procedure DBGrid4TitleClick(Column: TColumn);
procedure DBGrid3TitleClick(Column: TColumn);
procedure UslugakvartiraCalcFields(DataSet: TDataSet);
procedure BitBtn17Click(Sender: TObject);
procedure BitBtn18Click(Sender: TObject);
procedure ADOTable1CalcFields(DataSet: TDataSet);
private
procedure Refleshalltables;
{ Private declarations }
public
{ Public declarations }
end;
var
KvartiraForm: TKvartiraForm;
115
implementation
Uses DataModule, main, sprav, oplata;
{$R *.dfm}
procedure TKvartiraForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
action:=cafree;
end;
procedure TKvartiraForm.DBLookupComboBox1Click(Sender: TObject);
begin
DbLookupCombobox3.ListSource.DataSet.Filtered:=false;
DbLookupCombobox3.ListSource.DataSet.Filter:='idStreet =
'+IntToStr(DbLookupCombobox1.KeyValue);;
DbLookupCombobox3.ListSource.DataSet.Filtered:=true;
end;
procedure TKvartiraForm.BitBtn1Click(Sender: TObject);
begin
If (DbLookupCombobox1.KeyValue>0) and
(DbLookupCombobox2.KeyValue>0) and
(DbLookupCombobox3.KeyValue>0) and
(edit3.text<>'')and
(edit4.text<>'') and
(edit5.text<>'') then
begin
if label10.caption='0' then
begin
With AdoQuery1 do
begin
close;
SQL.clear;
SQl.add('INSERT INTO kvartira (idhouse, podezd, nomer, squareobsh, squaregil,
idTypesobstv)');
SQL.add('VALUES (:idhouse, :podezd, :nomer, :squareobsh, :squaregil,
:idTypesobstv); ');
Parameters.ParamByName('idhouse').Value:=DbLookupCombobox3.KeyValue;
Parameters.ParamByName('podezd').Value:=edit2.Text;
Parameters.ParamByName('nomer').Value:=edit3.Text;
Parameters.ParamByName('squareobsh').Value:=edit4.Text;
Parameters.ParamByName('squaregil').Value:=edit5.Text;
Parameters.ParamByName('idTypesobstv').Value:=DbLookupCombobox2.KeyValue;
EXECSQL;
end;
With AdoQuery1 do
begin
close;
SQL.Clear;
SQl.Add('SELECT MAX(id) As Maxid FROM kvartira As maxid');
open
end;
Label10.Caption:=AdoQuery1.FieldByName('maxid').AsString;
Label11.Caption:=label10.Caption;
With AdoQuery1 do
begin
close;
SQl.clear;

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

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