Дипломная работа: Автоматизация процесса приема и идентификации поступившей продукции в АО "Кодекс"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
149
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]:='десять ';
150
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;
151
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.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.Post;
}
end;
procedure TDataModule2.SaleTableBeforePost(DataSet:
TDataSet);
begin
152
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;
153
procedure TDataModule2.SaleTableAfterPost(DataSet:
TDataSet);
Var i:integer;
begin
If DocTable.State<>dsEdit then
DocTable.Edit;
SummaQry.Open;
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;
}
{If PrihodTable.State<>dsEdit then
PrihodTable.Edit;
PrihodTable.FieldByName('OSTATOK').Value:=
TovarTable.FieldByName('OSTATOK').Value;
PrihodTable.Post;}
end;
procedure TDataModule2.SaleTableAfterDelete(DataSet:
TDataSet);
begin
If DocTable.State<>dsEdit then
DocTable.Edit;
SummaQry.Open;
DocTable.FieldByName('SUMMA_STRING').AsString:=
SummaString(SummaQry.FieldByName('SUMMA').AsFloat);
Источник: https://baza.diplomsite.ru/previewfile/2110