49665

Нарахування відрядної заробітної платні на підприємстві

Курсовая

Информатика, кибернетика и программирование

У проекті показана робота підприємства по нарахуванню відрядної заробітної платні співробітникам цього підприємства. Нарахування заробітної платні виконується з урахуванням окладу співробітника, кількості днів перебування його у відряджені та податків.

Украинкский

2014-01-12

1.06 MB

3 чел.

Анотація

У проекті показана робота підприємства по нарахуванню відрядної заробітної платні співробітникам цього підприємства. Нарахування заробітної платні виконується з урахуванням окладу співробітника, кількості днів перебування його у відряджені та податків.


Реферат

Проект складається з ? сторінок, 6 ілюстрованих прикладів, 3 таблиць.

 

Об’єктом дослідження є нарахування відрядної заробітної платні на підприємстві.

Для розробки проекту знадобились інтегрована середа розробки Borland Delpi 7 та редактор Database Desktop, а також знання та навички роботи з цим програмним забезпеченням.

У процесі розробки досягнуте редагування бази даних співробітників підприємства, обчислення відрядної заробітної платні як для співробітників підприємства, так і для інших користувачів.

Програмне забезпечення розраховане на невелике підприємство з відповідним штатом співробітників для полегшення проведення бухгалтерського обліку нарахування заробітної платні.


Зміст


Вступ


Розділ 1

Дослідження предметної області

1.1 Характеристика предметної області

 Начислення відрядної заробітної платні.

 Заробі́тна пла́та, скорочено зарплата — винагорода, обчислена, зазвичай, у грошовому виразі, яку за трудовим договором власник або уповноважений ним орган виплачує працівникові за виконану ним роботу. Розмір зарплати залежить від складності та умов виконуваної роботи, професійно-ділових якостей працівника, результатів його праці та господарської діяльності підприємства.

У сучасній економічній теорії праця однозначно вважається фактором виробництва, а заробітна плата - ціною використання праці робітника.

З точки зору відносин розподілу заробітна плата - це грошове вираження частини необхідного продукту, яка надходить в індивідуальне споживання робітникам фірми у відповідності з кількістю і якістю затраченої ними праці у виробництві.

 Відря́дна фо́рма опла́ти пра́ці  оплата праці, яка прямо залежить від кількості виробленої продукції.

 Відря́дження  — поїздка за розпорядженням керівника підприємства, установи, організації для виконання службового доручення поза місцем постійної роботи.

 Середня заробітна плата – по підприємству, установі – економічний показник, який характеризує розмір нарахованої заробітної плати, яка припадає на одного працівника підприємства, організації; визначається поділом загальної суми нарахованої заробітної плати на середню чисельність працівників.

 

Дана задача представлена у вигляді начислення відрядної заробітної платні як для співробітників підприємства,  так і для окремих користувачів. Для підприємств розроблена спеціальна база даних, котра формує список співробітників за допомогою додавання їх в базу користувачем. Інформації про співробітника:

- П.І.Б.

- Табельний номер

- Дата прийому на роботу

- Оклад співробітника

Також користувачем вводиться інформація про поточний розрахунковий місяць, дата початку та кінця відрядження, а також ставка податку ( у процентах) .

Виконання задачі припиняєтеся лише у зв’язку з некоректним введенням інформації для її розв’язання.


1.2 Опис вхідних повідомлень

Назва вхідного повідомлення

Ідентифікатор

Форма подання

Термін і частота знаходження

Джерело

Імя  співробітника

FIO

БД

На протязі роботи з БД

Роботодавець

Табельний номер

Nomer

БД

На протязі роботи з БД

Роботодавець

Оклад

Oklad

БД

На протязі роботи з БД

Роботодавець

Дата прийому на роботу

Data

БД

На протязі роботи з БД

Роботодавець

Початок відрядження

---

Первинна форма

На момент роботи програми

Користувач

Кінець відрядження

---

Первинна форма

На момент роботи програми

Користувач

Вид підрахунку

---

Первинна форма

На момент роботи програми

Користувач

Ставка  податку

---

Первинна форма

На момент роботи програми

Користувач

Оклад або сер. заробіток

---

Первинна форма

На момент роботи програми

Користувач

   d:=DaysBetween(DateTimePicker3.Date,DateTimePicker4.Date);

if ComboBox1.Text='из среднего заработка' then begin

   zp:=d*StrToInt(Edit2.Text);

   nal:=abs(zp/100*StrToInt(ComboBox2.Text));


   d:=DaysBetween(DateTimePicker3.Date,DateTimePicker4.Date);   

   zp:=StrToInt(Edit2.Text);

   sr:=zp/d;

   nal:=abs(zp/100*StrToInt(ComboBox2.Text));

   opl:=zp-nal;

  Form3.Label5.Caption:=FloatToStr(sr);

   Form3.Label6.Caption:=IntToStr(d);

   Form3.Label7.Caption:=FloatToStr(zp);

   Form3.Label10.Caption:=FloatToStr(nal);

   Form3.Label8.Caption:=FloatToStr(opl);


1.4 Опис основних процедур перетворення даних

1. Начислена зарплата = Кількість днів відрядження * Оклад

   zp:=d*StrToInt(Edit2.Text);

2. Кількість днів відрядження = Кінець відрядження – Початок відрядження

   d:=DaysBetween(DateTimePicker3.Date,DateTimePicker4.Date);

3. Податок = Начислена зарплата * Ставку податку (%)

   nal:=abs(zp/100*StrToInt(ComboBox2.Text));

4. До сплати = Начислена зар.плата – Податок

   opl:=zp-nal;


Розділ 2

Розробка інфологічної моделі

Для додавання нового співробітника

Додавання нового співробітника виконується користувачем ПЗ. Для додавання розроблена відповідна форма, в котрій забезпечено введення даних, а саме:

  •  П.І.Б.
  •  Табельний номер
  •  Дата прийому на роботу
  •  Оклад

Підприє́мство — самостійний суб'єкт господарювання, створений компетентним органом державної влади або органом місцевого самоврядування, або іншими суб'єктами для задоволення суспільних та особистих потреб шляхом систематичного здійснення виробничої, науково-дослідної, торговельної, іншої господарської діяльності в порядку, передбаченому Господарським кодексом України та іншими законами.

Кожне підприємство має штат робітників, в залежності від його розмірів, форм власності та видів діяльності.  Для обліку робітників створена спеціальна база даних, розроблена на прикладі найпростішого невеликого виробничого підприємства.

Після введення даних вони, через компонент Table, котрий призначений для роботи з нашою базою даних (bd1.db), записуються до бази даних.


    table1.Active:=true;

    table1.Insert;

    table1.FieldByName('FIO').AsString:=edit1.Text;

    table1.FieldByName('Nomer').AsInteger:=StrToInt(edit2.Text);

    table1.FieldByName('Data').AsDateTime:=DateTimePicker1.Date;

    table1.FieldByName('Oklad').AsFloat:=strtofloat(edit3.Text);

    table1.Post;


Для вибора співробітника

Вибір співробітника  призводить до змінення у головній формі ПЗ її заголовка на П.І.Б співробітника, та даних про його табельний номер, дату прийому на роботу та оклад, через запит у базу даних на виведення інформації для виділеного співробітника.

 s:='SELECT FIO FROM bd1.DB';

 Query1.SQL.Clear;

 Query1.SQL.Add(s);

 Query1.Open;



Розділ 3

Розробка даталогічної моделі

База даних розроблена за допомогою Database Desctop, тому як ця середа створення БД інтегрована з Borland Delphi 7, і є однією із його складових. На прикладі роботи з Database Desctop  вона дуже легка у користуванні та реалізації бази даних інтегровано з Borland Delphi.

 

Тип бази даних, а саме Table Paradox 7, котрий ми вибрали для реалізації проекту є одним з основних стандартних типів БД у середі Database Desctop. Він є простий у налагодженні та використанні. Інтегрування з Borland Delphi 7 виконується за допомогою компонентів палітри BDE, Data Acess та Data Controls.


Розділ 4

Проектування та реалізація БД на фізичному рівні

За допомогою Database Desctop ми створили базу даних під назвою bd1.db у вигляді Table Paradox 7. Усе управління структурою даної бази даних відповідно виконується через Database Desctop. Управління самими даними виконується безпосередньо із розробленого ПЗ. Елементи, котрі відповідають за реалізацію та змінення даних нашою бази, а саме Query та Table, є стандартними.

Query – відповідає за реалізацію та виведення бази даних та її елементів, виконання запитів і таке інше, в рамках нашого ПЗ.

Приклад використання у проекті

e:='SELECT * FROM bd1.DB WHERE FIO="'+DBGrid1.SelectedField.AsString+'"';

 Form1.Query1.SQL.Clear;

 Form1.Query1.SQL.Add(e);

 Form1.Query1.Open;

 Form1.Caption:=DBGrid1.SelectedField.AsString;

 Form1.Edit1.Text:=Form1.DBGrid1.Columns.Grid.Fields[1].AsString;

 Form1.DateTimePicker2.DateTime:=Form1.DBGrid1.Columns.Grid.Fields[2].AsDateTime;

 if Form1.ComboBox1.Text='èç îêëàäà' then   Form1.Edit2.Text:=Form1.DBGrid1.Columns.Grid.Fields[3].AsString;


Table
– відповідає за реалізацію змінення елементів бази даних в рамках нашого ПЗ.

Приклад використання у проекті:

    table1.Active:=true;

    table1.Insert;

    table1.FieldByName('FIO').AsString:=edit1.Text;

    table1.FieldByName('Nomer').AsInteger:=StrToInt(edit2.Text);

    table1.FieldByName('Data').AsDateTime:=DateTimePicker1.Date;

    table1.FieldByName('Oklad').AsFloat:=strtofloat(edit3.Text);

    table1.Post;

Усі поля бази даних заповнюються із розробленої форми нашого ПЗ, котра запускається за допомогою натиснення кнопки «Новый сотрудник».

Вибір співробітника реалізується безпосередньо з допоміжної форми проекту, після натиснення кнопки «Выбор сотрудника».

Виведення даних здійснюється у головну форму проекту безпосередньо з розробленої нами бази даних відповідно до вибору нами співробітника з допоміжної форми.


Висновок


Список використаної літератури


Додаток

Лістинг проекту

Form 1

unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, ComCtrls, Buttons, DB, DBTables, Grids, DBGrids, dateutils;

type

 TForm1 = class(TForm)

   GroupBox1: TGroupBox;

   DateTimePicker2: TDateTimePicker;

   DateTimePicker3: TDateTimePicker;

   Edit1: TEdit;

   DateTimePicker4: TDateTimePicker;

   ComboBox1: TComboBox;

   Edit2: TEdit;

   ComboBox2: TComboBox;

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Label4: TLabel;

   Label5: TLabel;

   Label6: TLabel;

   Label7: TLabel;

   Label8: TLabel;

   Button1: TButton;

   Button3: TButton;

   BitBtn1: TBitBtn;

   ComboBox3: TComboBox;

   DataSource1: TDataSource;

   Query1: TQuery;

   DBGrid1: TDBGrid;

   procedure ComboBox1Select(Sender: TObject);

   procedure BitBtn1Click(Sender: TObject);

   procedure Button1Click(Sender: TObject);

   procedure Button3Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

 m,d:integer;                  // äàòû ðàñ÷¸òíîãî ìåñÿöà è äíåé êîìàíäèðîâêè

 day0,month0:integer;          // äåíü íà÷àëà

 date0: string;                //

 day,month:integer;            // äåíü îêîí÷àíèÿ

 date: string;                 //

 zp:integer;                   // äåíåæíûå è ïðîöåíòíûå ýêâèâàëåíòû

 nal,opl,sr:real;              //

 s:string;

implementation

uses Unit2, Unit3, Unit4, Unit5;

{$R *.dfm}

procedure TForm1.ComboBox1Select(Sender: TObject);

begin

if ComboBox1.Text='èç ñðåäíåãî çàðàáîòêà' then Label7.Caption:='Ñðåäíèé çàðàáîòîê çà ðàññ÷¸òíûé ïåðèîä'

else if ComboBox1.Text='èç îêëàäà' then Label7.Caption:='Îêëàä íà íà÷àëî ðàáî÷åãî ìåñÿöà';

Edit2.Enabled:=True;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

// ïðîâåðêà íà çàïîëíåíèå âñåõ ïîëåé ââîäà è âûáîðà

if (ComboBox3.Text='') or (DateTimePicker3.Date=DateTimePicker4.Date) or

 (ComboBox1.Text='') or (ComboBox2.Text='') or (Edit2.Text='') then begin

 ShowMessage('Ââåäèòå êîððåêòíûå äàííûå!!!');

end else begin

   d:=DaysBetween(DateTimePicker3.Date,DateTimePicker4.Date);

//ïðîâåðêà ïóòè ðàñ÷¸òà

if ComboBox1.Text='èç ñðåäíåãî çàðàáîòêà' then begin

 //ðàñ÷¸ò çàðîáîòíîé ïëàòû çà ïåðèîä êîìàíäèðîâêè

   zp:=d*StrToInt(Edit2.Text);

 //ðàñ÷¸ò íàëîãîîáëîæåíèÿ

   nal:=abs(zp/100*StrToInt(ComboBox2.Text));

 //ðàñ÷¸ò ññóììû ê îïëàòå

   opl:=zp-nal;

end;

//ïðîâåðêà ïóòè ðàñ÷¸òà

if ComboBox1.Text='èç îêëàäà' then begin

 //ðàñ÷¸ò çàðîáîòíîé ïëàòû çà ïåðèîä êîìàíäèðîâêè

   zp:=StrToInt(Edit2.Text);

 //ðàñ÷¸ò ñðåäíåé çàðîáîòíîé ïëàòû

   sr:=zp/d;

 //ðàñ÷¸ò íàëîãîîáëîæåíèÿ

   nal:=abs(zp/100*StrToInt(ComboBox2.Text));

 //ðàñ÷¸ò ññóììû ê îïëàòå

   opl:=zp-nal;

end;

//âûâîä èíôîðìàöèè è ðàñ÷¸òîâ

 if ComboBox1.Text='èç ñðåäíåãî çàðàáîòêà' then begin

   Form2.Label5.Caption:=IntToStr(d);

   Form2.Label6.Caption:=IntToStr(zp);

   Form2.Label7.Caption:=FloatToStr(nal);

   Form2.Label8.Caption:=FloatToStr(opl);

   Form2.Left:=Form1.Left+Form1.Width;

   Form2.Top:=Form1.Top;

   Form2.Caption:='èç ñðåäíåãî çàðàáîòêà';

   Form2.ShowModal;

 end;

 if ComboBox1.Text='èç îêëàäà' then begin

   Form3.Label5.Caption:=FloatToStr(sr);

   Form3.Label6.Caption:=IntToStr(d);

   Form3.Label7.Caption:=FloatToStr(zp);

   Form3.Label10.Caption:=FloatToStr(nal);

   Form3.Label8.Caption:=FloatToStr(opl);

   Form3.Left:=Form1.Left+Form1.Width;

   Form3.Top:=Form1.Top;

   Form3.Caption:='èç îêëàäà';

   Form3.ShowModal;

 end;

// îêîí÷àíèå ïðîâåðêè íà ïðàâèëüíîñòü ââîäà ìåñÿöà îò÷¸òíîñòè

end {else begin

 ShowMessage('ðàñ÷¸òíûé ìåñÿö è ìåñÿö êîìàíäèðîâêè äîëæíû áûòü ðàâíû!');

end;                             }

// îêîí÷àíèå ïðîâåðêè íà ââîä âñåõ çíà÷åíèé

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

// îòêðûòèå ôîðìû âûáîðà ñîòðóäíèêîâ

if Form1.ComboBox1.Text<>'' then begin

Form4.Top:=Form1.Top+Form1.Height;

Form4.Left:=Form1.Left;

Form4.ShowModal;

end else begin

ShowMessage('Âûáåðèòå âèä ðàññ÷¸òà!');

end;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

// îòêðûòèå ôîðìû âûáîðà ñîòðóäíèêîâ

Form5.Top:=Form1.Top+Form1.Height;

Form5.Left:=Form1.Left;

Form5.ShowModal;

end;

end.


Form 4

unit Unit4;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, DB, DBCtrls, DBTables, Grids, DBGrids;

type

 TForm4 = class(TForm)

   Button1: TButton;

   DataSource1: TDataSource;

   Query1: TQuery;

   DBGrid1: TDBGrid;

   procedure FormShow(Sender: TObject);

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form4: TForm4;

 s,e:string;       // ñòðîêîâûå êîñòàíòû äëÿ çàãðóçêè áàçû äàííûõ

implementation

uses Unit1;

{$R *.dfm}

procedure TForm4.FormShow(Sender: TObject);

begin

//çàãðóçêà áàçû äàííûõ â ôîðìó (Ãðèä)

 s:='SELECT FIO FROM bd1.DB';

 Query1.SQL.Clear;

 Query1.SQL.Add(s);

 Query1.Open;

end;

procedure TForm4.Button1Click(Sender: TObject);

begin

//çàãðóçêà áàçû äàííûõ â ôîðìó 1 (Ãðèä) âûäåëåííîãî â ôîðìå 4 ñîòðóäíèêà

 e:='SELECT * FROM bd1.DB WHERE FIO="'+DBGrid1.SelectedField.AsString+'"';

 Form1.Query1.SQL.Clear;

 Form1.Query1.SQL.Add(e);

 Form1.Query1.Open;

// ïðèñâàèâàíèå ôîðìå èìåíè ñîòðóäíèêà

 Form1.Caption:=DBGrid1.SelectedField.AsString;

// ïðèñâàèâàíèå òàáåëüíîãî íîìåðà ñîòðóäíèêà

//               Ôîðìà1.Òàáëèöà1.Êîëîíêè.Êîëîíêà.Ýëåìåíò(ñòðîêà)[1].Êàê ñòðîêîââûé òèï;

 Form1.Edit1.Text:=Form1.DBGrid1.Columns.Grid.Fields[1].AsString;

// ïðèñâàèâàíèå äàòû ïðè¸ìà íà ðàáîòó

//               Ôîðìà1.Òàáëèöà1.Êîëîíêè.Êîëîíêà.Ýëåìåíò(ñòðîêà)[2].Êàê äàòîâûé òèï;

 Form1.DateTimePicker2.DateTime:=Form1.DBGrid1.Columns.Grid.Fields[2].AsDateTime;

 if Form1.ComboBox1.Text='èç îêëàäà' then   Form1.Edit2.Text:=Form1.DBGrid1.Columns.Grid.Fields[3].AsString;

Form4.Close;

end;

end.


Form 5

unit Unit5;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, DBTables, DB, StdCtrls, ComCtrls;

type

 TForm5 = class(TForm)

   DataSource1: TDataSource;

   Edit1: TEdit;

   Edit2: TEdit;

   Edit3: TEdit;

   DateTimePicker1: TDateTimePicker;

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Label4: TLabel;

   Button1: TButton;

   Table1: TTable;

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form5: TForm5;

implementation

{$R *.dfm}

procedure TForm5.Button1Click(Sender: TObject);

begin

    table1.Active:=true;

    table1.Insert;

    table1.FieldByName('FIO').AsString:=edit1.Text;

    table1.FieldByName('Nomer').AsInteger:=StrToInt(edit2.Text);

    table1.FieldByName('Data').AsDateTime:=DateTimePicker1.Date;

    table1.FieldByName('Oklad').AsFloat:=strtofloat(edit3.Text);

    table1.Post;

Form5.Close;

end;

end.