Файл: Проектирование реализации операций бизнес-процесса «Управление запасами» (Выбор комплекса задач автоматизации).pdf
Добавлен: 13.06.2023
Просмотров: 401
Скачиваний: 3
СОДЕРЖАНИЕ
1.1 Выбор комплекса задач автоматизации
1.2 Характеристика существующих бизнес – процессов
1.3 Характеристика документооборота, возникающего при решении задачи
1.4 Обоснование проектных решений по информационному обеспечению.
1.5 Обоснование проектных решений по программному обеспечению
2.1 Информационная модель и её описание
2.2 Характеристика нормативно-справочной, входной и оперативной информации
2.3 Характеристика результатной информации
2.5 Характеристика базы данных
2.7 Описание программных модулей
KategTable: TTable;
KategSr: TDataSource;
KategTableID_KATEG: TAutoIncField;
KategTableNAME_KATEG: TStringField;
TovarTableID_KATEG: TIntegerField;
SumRashQry: TQuery;
ReportQry: TQuery;
SumRashQryID_TOVAR: TIntegerField;
SumRashQryNAME_TOVAR: TStringField;
SumRashQrySUMOFKOLVO_TOVAR: TFloatField;
SumRashQrySUMOFKOLVO_PRIHOD: TFloatField;
SelectQry: TQuery;
SaleTableCOUNTRY: TStringField;
SaleTableN_DECLAR: TStringField;
SumRashQry2: TQuery;
SumRashQry2ID_TOVAR: TIntegerField;
SumRashQry2NAME_TOVAR: TStringField;
SumRashQry2KOLVO_TOVAR: TIntegerField;
SumRashQry2KOLVO_PRIHOD: TSmallintField;
DeclTable: TTable;
DeclSr: TDataSource;
SelectDeclQry: TQuery;
SelectDeclSr: TDataSource;
SelectDeclQryN_DECLAR: TStringField;
SelectDeclQryID_DECLAR: TIntegerField;
SelectDeclQryID_TOVAR: TIntegerField;
DocTableID_SALE: TAutoIncField;
DocTableDATA_SALE: TDateField;
DocTableN_FAKTURA: TStringField;
DocTableN_NAKLAD: TStringField;
DocTableN_ORDER: TStringField;
DocTableCLIENT: TStringField;
DocTableDOC_SUMMA: TCurrencyField;
DocTableDOC_NDS: TCurrencyField;
DocTableDOC_ALL_SUMMA: TCurrencyField;
DocTableSUMMA_STRING: TStringField;
DocTableID_CLIENT: TIntegerField;
DocTableDOC_NALOG: TCurrencyField;
InsPlusQry: TQuery;
FirmaTableSEL: TStringField;
KategTableSEL: TStringField;
Query2: TQuery;
IntegerField1: TIntegerField;
StringField1: TStringField;
IntegerField2: TIntegerField;
SmallintField1: TSmallintField;
IntegerField3: TIntegerField;
SaleTableOSTATOK: TIntegerField;
UpPrihodQry: TQuery;
SumRashQry2OSTATOK: TIntegerField;
InsPrihodQry: TQuery;
SkaldTable: TTable;
SkladSr: TDataSource;
SkaldTableID_SKLAD: TAutoIncField;
SkaldTableNAME_SKALD: TStringField;
KategTableID_SKLAD: TIntegerField;
RashodQryN_NAKLAD: TStringField;
RashodQryCLIENT: TStringField;
PrihodQry: TQuery;
PrihodQryN_NAKLAD_PRIHOD: TStringField;
PrihodQryDATE_PRIHOD: TDateField;
PrihodQryPOSTAVSHIK: TStringField;
PrihodQryKOLVO_TOVAR: TFloatField;
PrihodQryPRICE_TOVAR: TCurrencyField;
PrihodQrySUMMA: TCurrencyField;
RashodQryDOC_SUMMA: TCurrencyField;
TovarTableSHIFR: TStringField;
TovarTablePRICE_PRIH: TCurrencyField;
TovarTablePRICE_RASH: TCurrencyField;
PrMoneyTable: TTable;
RasMoneyTable: TTable;
PrMoneySr: TDataSource;
RasMoneySr: TDataSource;
PrMoneyTableID_MONEY_PRIH: TAutoIncField;
PrMoneyTableID_SKLAD: TIntegerField;
PrMoneyTableDATA_MONEY_PRIH: TDateField;
PrMoneyTablePRIH_MONEY_RUB: TCurrencyField;
PrMoneyTablePRIH_MONEY_USD: TCurrencyField;
PrMoneyTablePRIH_KURS: TCurrencyField;
PrMoneyTableZA_CHTO_MONEY_PRIH: TStringField;
PrMoneyTableCOMMENT_MONEY_PRIH: TStringField;
RasMoneyTableID_RASHOD_MONEY: TAutoIncField;
RasMoneyTableID_SKLAD: TIntegerField;
RasMoneyTableDATA_RASH_MONEY: TDateField;
RasMoneyTableRASH_MONEY_RUB: TCurrencyField;
RasMoneyTableRASH_MONEY_USD: TCurrencyField;
RasMoneyTableRASH_KURS: TCurrencyField;
RasMoneyTableZA_CHTO_MONEY_RASH: TStringField;
RasMoneyTableCOMMENT_MONEY_RASH: TStringField;
SkladTableSELECT: TStringField;
ClientTableSEL: TStringField;
TovarTableED_IZM: TStringField;
TovarTableCOMMENT: TBlobField;
SaleTableKOLVO_TOVAR: TFloatField;
TovarTableOSTATOK: TFloatField;
ReportQryCLIENT: TStringField;
ReportQryADRESS: TStringField;
ReportQryTELEPHONE: TStringField;
ReportQryMAN: TStringField;
ReportQryDOCUMENT: TStringField;
ReportQryDATA_SALE: TDateField;
ReportQryN_NAKLAD: TStringField;
ReportQryN_ORDER: TStringField;
ReportQryDOC_SUMMA: TCurrencyField;
ReportQryDOC_NDS: TCurrencyField;
ReportQryDOC_ALL_SUMMA: TCurrencyField;
ReportQryDOC_NALOG: TCurrencyField;
ReportQrySUMMA_STRING: TStringField;
ReportQryNAME_TOVAR: TStringField;
ReportQryKOLVO_TOVAR: TFloatField;
ReportQryPRICE: TCurrencyField;
ReportQrySUMMA: TCurrencyField;
ReportQryNDS: TFloatField;
ReportQrySUMMA_NDS: TCurrencyField;
ReportQryALL_SUMMA: TCurrencyField;
ReportQryNALOG: TFloatField;
ReportQrySUMMA_NALOG: TCurrencyField;
ReportQryFIRMA: TStringField;
ReportQryADRESS_1: TStringField;
ReportQryTELEPHON: TStringField;
RashodQrySUMMA: TCurrencyField;
procedure DataModuleCreate(Sender: TObject);
procedure PrihodTableAfterPost(DataSet: TDataSet);
procedure RashodTableAfterPost(DataSet: TDataSet);
procedure SaleTableBeforePost(DataSet: TDataSet);
procedure SaleTableAfterPost(DataSet: TDataSet);
procedure SaleTableAfterDelete(DataSet: TDataSet);
procedure SaleTableBeforeEdit(DataSet: TDataSet);
procedure SaleTableBeforeDelete(DataSet: TDataSet);
procedure PrihodTableBeforeEdit(DataSet: TDataSet);
procedure PrihodTableBeforeDelete(DataSet: TDataSet);
procedure PrihodTableAfterDelete(DataSet: TDataSet);
private
{ private declarations }
public
{ public declarations }
end;
var
DataModule2: TDataModule2;
Id_tovar: integer;
implementation
function SummaString(m: real): string;
Var
por : array[0..4,0..2] of string;
por1: array[0..0,0..2] of string;
a : array[0..19] of string;
a1 : array[0..19] of string;
b1 : array[0..9] of string;
c : array[0..9] of string;
s : string;
p : integer;
mul : real;
l1 : integer;
pos_rub: integer;
begin
por[0,0]:='рубль '; por[0,1]:='рубля '; por[0,2]:='рублей ';
por[1,0]:='тысяча '; por[1,1]:='тысячи '; por[1,2]:='тысяч ';
por[2,0]:='миллион '; por[2,1]:='миллиона '; por[2,2]:='миллионов ';
por[3,0]:='миллиард '; por[3,1]:='миллиарда '; por[3,2]:='миллиардов ';
por[4,0]:='триллион '; por[4,1]:='триллиона '; por[4,2]:='триллионов ';
por1[0,0]:='копейка '; por1[0,1]:='копейки '; por1[0,2]:='копеек ';
a[0]:=' '; a[1]:='один '; a[2]:='два '; a[3]:='три '; a[4]:='четыре ';
a[5]:='пять '; a[6]:='шесть '; a[7]:='семь '; a[8]:='восемь ';
a[9]:='девять '; a[10]:='десять '; a[11]:='одиннадцать ';
a[12]:='двенадцать '; a[13]:='тринадцать '; a[14]:='четырнадцать ';
a[15]:='пятнадцать '; a[16]:='шестнадцать '; a[17]:='семнадцать ';
a[18]:='восемнадцать '; a[19]:='девятнадцать ';
a1[0]:=' '; a1[1]:='одна '; a1[2]:='две '; a1[3]:='три ';
a1[4]:='четыре '; a1[5]:='пять '; a1[6]:='шесть '; a1[7]:='семь ';
a1[8]:='восемь '; a1[9]:='девять '; a1[10]:='десять ';
a1[11]:='одиннадцать '; a1[12]:='двенадцать ';a1[13]:='тринадцать ';
a1[14]:='четырнадцать '; a1[15]:='пятнадцать '; a1[16]:='шестнадцать ';
a1[17]:='семнадцать '; a1[18]:='восемнадцать '; a1[19]:='девятнадцать ';
b1[0]:=' '; b1[1]:='десять '; b1[2]:='двадцать '; b1[3]:='тридцать ';
b1[4]:='сорок '; b1[5]:='пятьдесят '; b1[6]:='шестьдесят ';
b1[7]:='семьдесят '; b1[8]:='восемьдесят '; b1[9]:='девяносто ';
c[0]:=' '; c[1]:='сто '; c[2]:='двести '; c[3]:='триста ';
c[4]:='четыреста '; c[5]:='пятьсот '; c[6]:='шестьсот ';
c[7]:='семьсот '; c[8]:='восемьсот '; c[9]:='девятьсот ';
s:=' ';
For p:=4 downto 0 do begin
mul:=power(10,p*3);
l1:=Round(Int(m/mul));
m:=m-l1*mul;
if (l1>0) then begin
if (Round(Int(l1/100))>0) then begin
s:=s+c[Round(Int(l1/100))];
l1:=l1-Round(Int(l1/100))*100;
end;
if (l1>=20) then begin
s:=s+b1[Round(Int(l1/10))];
l1:=l1-Round(Int(l1/10))*10;
end;
if(p<>1) then s:=s+a[l1]
else s:=s+a1[l1];
if (l1=1)then s:=s+por[p,0];
if (l1>1) and (l1<5) then
s:=s+por[p,1];
if (l1<1) or (l1>4) then
s:=s+por[p,2];
end;{if}
end;{for}
pos_rub:=pos('рублей',s);
if (l1=0) and (pos_rub=0)
then s:=s+por[0,2];
l1:=Round(m*100);
If (l1>0) then begin
if (l1>=20) then begin
s:=s+b1[Round(Int(l1/10))];
l1:=l1-Round(Int(l1/10))*10;
end;
s:=s+a1[l1];
if (l1=1) then s:=s+por1[0,0];
if (l1>1) and (l1<5) then s:=s+por1[0,1];
if (l1<1) or (l1>4) then s:=s+por1[0,2];
end;{if}
SummaString:=s;
end;
procedure TDataModule2.DataModuleCreate(Sender: TObject);
begin
{TovarTable.Open;
PrihodTable.Open;
RashodTable.Open;
DocTable.Open;
SaleTable.Open;}
end;
procedure TDataModule2.PrihodTableAfterPost(DataSet: TDataSet);
begin
{If TovarTable.State<>dsEdit then
TovarTable.Edit;
TovarTable.FieldByName('OSTATOK').Value:=
TovarTable.FieldByName('OSTATOK').Value+PrihodTable.FieldByName('KOLVO_PRIHOD').Value;
TovarTable.Post;
}
{UpTovQry1.ParamByName('KOLVO').AsInteger:=
PrihodTable.FieldByName('KOLVO_PRIHOD').AsInteger;
UpTovQry1.ParamByName('ID_TOVAR').AsInteger:=
PrihodTable.FieldByName('ID_TOVAR').AsInteger;
UpTovQry1.ExecSQL;
TovarTable.Active:=False;
TovarTable.Active:=True;;}
end;
procedure TDataModule2.RashodTableAfterPost(DataSet: TDataSet);
begin
{ If TovarTable.State<>dsEdit then
TovarTable.Edit;
TovarTable.FieldByName('OSTATOK').Value:=
TovarTable.FieldByName('OSTATOK').Value-RashodTable.FieldByName('KOLVO_RASHOD').Value;
TovarTable.Post;
}
end;
procedure TDataModule2.SaleTableBeforePost(DataSet: TDataSet);
begin
Id_tovar:=SaleTable.FieldByName('ID_TOVAR').Value;
With SaleTable do begin
FieldByName('SUMMA').Value:=
FieldByName('KOLVO_TOVAR').Value*FieldByName('PRICE').Value;
FieldByName('SUMMA_NALOG').Value:=
((FieldByName('KOLVO_TOVAR').Value*FieldByName('PRICE').Value)/
(100+FieldByName('NALOG').Value))*
FieldByName('NALOG').Value;
FieldByName('SUMMA_NDS').Value:=
(FieldByName('KOLVO_TOVAR').Value*FieldByName('PRICE').Value-
FieldByName('SUMMA_NALOG').Value)/
(100+FieldByName('NDS').Value)*FieldByName('NDS').Value;
FieldByName('ALL_SUMMA').Value:=
FieldByName('SUMMA').Value-FieldByName('SUMMA_NALOG').Value-
FieldByName('SUMMA_NDS').Value;
end;
{ With SaleTable do begin
FieldByName('ALL_SUMMA').Value:=
FieldByName('KOLVO_TOVAR').Value*FieldByName('PRICE').Value;
FieldByName('SUMMA_NDS').Value:=
(FieldByName('KOLVO_TOVAR').Value*FieldByName('PRICE').Value)*
FieldByName('NDS').Value/100;
FieldByName('SUMMA_NALOG').Value:=
((FieldByName('KOLVO_TOVAR').Value*FieldByName('PRICE').Value)*
FieldByName('NDS').Value/100)*
FieldByName('NALOG').Value/100;
FieldByName('SUMMA').Value:=
FieldByName('ALL_SUMMA').Value+FieldByName('SUMMA_NALOG').Value+
FieldByName('SUMMA_NDS').Value;
end;
}
end;
procedure TDataModule2.SaleTableAfterPost(DataSet: TDataSet);
Var i:integer;
begin
If DocTable.State<>dsEdit then
DocTable.Edit;
SummaQry.Open;
DocTable.FieldByName('DOC_SUMMA').Value:=SummaQry.FieldByName('SUMMA').Value;
DocTable.FieldByName('DOC_NDS').Value:=SummaQry.FieldByName('SUMMA_NDS').Value;
DocTable.FieldByName('DOC_NALOG').Value:=SummaQry.FieldByName('SUMMA_NALOG').Value;
DocTable.FieldByName('DOC_ALL_SUMMA').Value:=SummaQry.FieldByName('ALL_SUMMA').Value;
DocTable.FieldByName('SUMMA_STRING').AsString:=
SummaString(SummaQry.FieldByName('SUMMA').AsFloat);
SummaQry.Close;
DocTable.Post;
UpdateTovQry1.ParamByName('KOLVO').AsInteger:=
SaleTable.FieldByName('KOLVO_TOVAR').AsInteger;
UpdateTovQry1.ParamByName('ID_TOVAR').AsInteger:=
SaleTable.FieldByName('ID_TOVAR').AsInteger;
UpdateTovQry1.ExecSQL;
TovarTable.Active:=False;
TovarTable.Active:=True;;
UpPrihodQry.ParamByName('ID_TOVAR').AsInteger:=ID_TOVAR;
{
UpPrihodQry.ParamByName('OSTATOK').AsInteger:=
TovarTable.FieldByName('OSTATOK').AsInteger;
UpPrihodQry.ParamByName('ID_TOVAR').AsInteger:=ID_TOVAR;
SaleTable.FieldByName('ID_TOVAR').AsInteger;
UpPrihodQry.ExecSQL;