Учет заработной платы агентов по продажам
Содержание
Общая
постановка задачи
Постановка
индивидуальной задачи
Use-case
диаграмма
Диаграмма
классов
Диаграмма
dll-ок
Описание
для пользователя программы
Описание
для программиста
Вывод
Общая постановка задачи
Необходимо создать программу учета заработной
платы агентов по продажам услуг по сдельно-премиальной форме. Суть работы
агентов: они собирают заявки на услуги, как только по их заявке происходит
реализация услуги (проплата от клиента), заявка засчитывается как фактическая.
Существует ежемесячный план по заявкам. Если агент не выполняет план, то его
фактические заявки оцениваются по одному тарифу, если выполняет - по другому,
плюс определенная сумма ежемесячной премии. Если агент выполняет план за
квартал, то ему начисляется дополнительная премия. При этом агент должен
отработать не менее 17 дней в месяц. Для тех, кто не отрабатывает это
количество дней, стоимость заявки ниже. Есть возможность получать отчет о
наиболее и наименее результативных агентах. Если агент является результативным
более чем 3 месяца от начала работы, он получает статус старшего агента и
соответственно другую оплату.
Предусмотреть возможность ведение информации об
агенте и заявках, а так же привязку заявки к агенту. По итогам месяца должен
формироваться отчет в pdf
с данными о том, сколько денег какой агент должен получить. Должна быть
возможность просмотреть этот отчет, распечатать его или отослать на электронную
почту.
На формочке ЗАПРЕЩАЕТСЯ использовать компонент PropertyGrid.
Организовать хранение и загрузку списков ваших сущностей в XML-формате.
Постановка индивидуальной задачи
В мои обязанности входило:
♦ Организовать ввод информации об
агентах и заявках
♦ Обеспечит поиск агентов и заказов
в списке, возможность редактирования данных агента и заказов, фиксирование оплаты
заказа
♦ Организовать хранение и загрузку
списков агентов и заказов в XML-формате
♦ Организовать возможность отправки
отчёта на почту
Создание классов:
ü Агент
ü Заказ
ü Список заказов
ü Список агентов
Создание форм:
ü Форма для авторизации
ü Форма для агентов
ü Форма для бухгалтера
ü Форма для списка агентов
ü Форма для списка заказов
ü Форма для добавления агентов
ü Форма для добавления заказа
ü Форма для почты
Use-case
диаграмма
Диаграмма классов
Агент
|
Поля: ID Fio
Statys Age Adress Tel E_mail Kolvo_zakazov_m Kolvo_zakazov_k
Kolvo_otrab_dnei_m Summa_ot_zakazov
|
Заказ
|
Поля: Nomer
FIO_zakazchika FIO_agenta oplata Naimenovanie Kol_vo Summa_zakaza
|
Список агентов
|
Поля: List Методы:
Add(); Search(); Edit(); Close();
|
Список заказов
|
Поля: List Методы:
Add(); Search(); Edit(); Close();
|
Управляющий класс
|
Поля:
Сохранить агента Сохранить заказ Загрузить агентов Загрузить
заказы
|
Форма для списка заказов
|
Методы:
Поиск заказа Фиксировать оплату Закрыть окно
|
Форма для добавления заказа
|
Методы:
Добавить заказ Закрыть окно
|
Форма для добавления агентов
|
Методы:
Добавить агента Закрыть окно
|
Форма для списка агентов
|
Методы:
Добавить агента Поиск агента Редактировать инф. Закрыть
окно
|
Форма
для авторизации
|
Методы: Войти Закрыть окно
|
Форма для почты
|
Методы:
Отправить на почту Закрыть окно
|
Форма для бухгалтера
|
Методы:
Посмотреть список агентов Добавить агента Посмотреть список заказов Расчёт
зарплаты за месяц Расчёт зарплаты за квартал Информация Авторы Выход
|
Форма для агента
|
Методы:
Посмотреть список заказов Добавить заказ Закрыть
окно
|
отчет форма авторизация агент
Диаграмма dll-ок
Описание для пользователя
Рекомендуемые системные требования:
♦ Операционная
система Microsoft
Windows Server 2003, Windows Vista, Windows XP, Windows7;
♦ Программа Adobe Reader;
♦ Доступ к интернету (при отправке
на почту);
♦ Установки не требует. Просто
копируйте папку на диск;
♦ 512 Мб оперативной памяти и выше;
♦ 60 Мб свободного места на жёстком
диске.
При запуске программы необходимо авторизоваться
либо как «Агент + id
агента» «123 + id
агента», либо как «Бухгалтер» «456»:
Если пользователь авторизовался как «Агент», то
ему открывается доступ к списку и добавлению заказов:
Программа выдаёт список заказов, которые
закреплены за данным агентом.
При нажатие на кнопку «Закрыть окно» закрывается
данная форма, но не сама программа, для закрытие программы, необходимо нажать
«Выход».
Если пользователю необходимо найти определённый
заказ, то для этого есть поле «Поиск заказа». Поиск может осуществляться по
наименованию заказа, либо по номеру заказа. Необходимо выбрать вариант поиска,
ввести данные в поле поиска и нажать кнопку «Найти».
При нажатие кнопки «Редактировать» открывается
доступ в изменениям доступных полей. После того как пользователь поменял
необходимые данные, необходимо нажать кнопку «Сохранить изменения», иначе
отредактированные данные не сохранятся.
При нажатие кнопки «Добавить заказ» открывается
форма для добавления описания заказа:
В поля отмеченное «0» необходимо ввести числовые
значения, в случае некорректного ввода программа выдаст сообщение об ошибке.
Необходимо чтобы все поля описания заказа были
заполнены, иначе программа выдаст сообщение об ошибке.
При нажатие на кнопку «Добавить» добавленный
заказ сразу появится в обновлённом списке заказов.
При нажатие на кнопку «Закрыть окно» введённые
данные о заказе не будут добавлены в список заказов.
Если пользователь авторизовался как «Бухгалтер»,
то ему открывается доступ к списку агентов и добавлению агентов, к списку
заказов для внесения фиксирования оплаты, к расчёту заработной платы, и к
информации о проекте.
При нажатии на кнопку «Список агентов» выпадает
меню с пунктами:
Пользователь может работать со списком агентов:
Осуществлять поиск агентов можно по ФИО и по ID
агента, добавить агента, редактировать информацию об агенте (с сохранением
изменений) или закрыть окно.
Также пользователь может перейти сразу к
добавлению агента:
В поля отмеченное «0» необходимо ввести числовые
значения, в случае некорректного ввода программа выдаст сообщение об ошибке.
При нажатие на кнопку «Добавить» добавленный
агент сразу появится в обновлённом списке заказов.
При нажатие на кнопку «Закрыть окно» введённые
данные об агенте не будут добавлены в список агентов.
В обязанности бухгалтера входит фиксирование
оплаты, следовательно, у него есть возможность работать со всем списком
заказов:
Для удобства есть поиск по наименованию, и по
номеру заказа. При нажатие кнопки «Найти» в окне «Описание заказа» отобразиться
найденный заказ, если заказ по данному номеру (или наименованию) не будет
найден, программа выдаст соответствующее сообщение.
Фиксировать оплату можно только у не оплаченных
заказов. Если заказ не оплачен, то при нажатие на кнопку «Фиксировать оплату»
программа спросит «Заказ оплачен?» и предложит варианты «Да» / «Нет». При
нажатие кнопки «Да», данные в поле «оплата» поменяются на «оплачено» .
Пользователь может посмотреть информацию о
проекте:
Описание для программиста
Листинг программы:
Управляющий.cs
using
System;System.Collections.Generic;System.Linq;System.Text;System.IO;System.Xml.Serialization;System.Reflection;курсовая
{class Управляющий
{курсовая_ддл.Zakazi Z = new
курсовая_ддл.Zakazi();курсовая_ддл.SpisokZakazov SZ = new
курсовая_ддл.SpisokZakazov();курсовая_ддл.Agents AG = new
курсовая_ддл.Agents();курсовая_ддл.SpisokAgents SAG = new
курсовая_ддл.SpisokAgents();XmlSerializer AgentX = new
XmlSerializer(typeof(курсовая_ддл.SpisokAgents));XmlSerializer ZakazX = new
XmlSerializer(typeof(курсовая_ддл.SpisokZakazov));decimal SumZakCur = 0;void
save(string path)
{f = new FileStream(path,
FileMode.Create, FileAccess.Write);kk = new
StreamWriter(f);.Flush();.Close();.Close();
}void LoadUser(string s)
{f = new FileStream(s,
FileMode.Open, FileAccess.Read);sr = new StreamReader(f);=
(курсовая_ддл.SpisokAgents)AgentX.Deserialize(sr); // приведение
типа.Close();.Close();
}void SaveAgents(string s)
{(File.Exists(s)) File.Delete(s);f =
new FileStream(s, FileMode.CreateNew, FileAccess.Write);sw = new
StreamWriter(f);.Serialize(sw, SAG);.Close();.Close();
}void LoadAgents(string st)
{ff = new FileStream(st,
FileMode.Open, FileAccess.Read);sr1 = new StreamReader(ff);=
(курсовая_ддл.SpisokAgents)AgentX.Deserialize(sr1); // приведение
типа.Close();.Close();
}void SaveZakazi(string st)
{(File.Exists(st))
File.Delete(st);ff1 = new FileStream(st, FileMode.CreateNew,
FileAccess.Write);sw1 = new StreamWriter(ff1);.Serialize(sw1,
SZ);.Close();.Close();
}void LoadZakazi(string st)
{ff2 = new FileStream(st,
FileMode.Open, FileAccess.Read);sr2 = new StreamReader(ff2);=
(курсовая_ддл.SpisokZakazov)ZakazX.Deserialize(sr2); // приведение
типа.Close();.Close();
}static string PathConverter(string
file)
{
{= file.Replace(@"\",
"/");"file:///" + file;
}(System.Exception ex)
{ex;
}
}
}
}
log.cs
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;курсовая_ддл;System.IO;курсовая
{partial class log : Form
{Управляющий Upr = new
Управляющий();ag = "Агент";par_ag = "123";byh =
"Бухгалтер";par_byh = "456";str1, str2;int nomer_agenta;log()
{();
}void log_Load(object sender,
EventArgs e)
{(File.Exists("Agents.xml")).LoadAgents("Agents.xml");(File.Exists("Zakazi.xml")).LoadZakazi("Zakazi.xml");.Activate();
}void button1_Click(object sender,
EventArgs e)
{= Convert.ToString(textBox1.Text);=
Convert.ToString(textBox2.Text);(int i = 0; i < Upr.SAG.List.Count; i++)
{((str1 == ag + i.ToString())
&& (str2 == par_ag + i.ToString()))
{_agenta = i;.Agentam.Show();
}
}((str1 == byh) && (str2 ==
par_byh))
{.f1.Show();.Hide();
}(((str1 != (ag+this.nomer_agenta.ToString()))
|| (str2 != par_ag+this.nomer_agenta.ToString())) && ((str1 != byh) ||
(str2 != par_byh)))
{ MessageBox.Show("НЕ правильно
ввели логин/пароль!", "Error", MessageBoxButtons.OK,
MessageBoxIcon.Error); }
}void log_Closing(object sender,
FormClosingEventArgs e)
{.SaveAgents("Agents.xml");.SaveZakazi("Zakazi.xml");
}void log_Closing(object sender,
FormClosedEventArgs e)
{.Exit();
}void button2_Click(object sender,
EventArgs e)
{.Close();
}
}
}
Агентам.cs
using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;курсовая_ддл;System.IO;курсовая
{partial class Агентам : Form
{Агентам()
{();
}int[]
m;nom,x,double_ukaz,sum_old,kolvo,index;ukaz = -1;void button2_Click(object
sender, EventArgs e)
{.DZakaz.ShowDialog();
}void button1_Click(object sender,
EventArgs e)
{.Hide();
}void Агентам_Load(object sender,
EventArgs e)
{(File.Exists("Zakazi.xml")).Activ.Upr.LoadZakazi("Zakazi.xml");.Activate();.Items.Clear();=
new int[Program.Activ.Upr.SZ.List.Count];= 0;(курсовая_ддл.Zakazi Z in
Program.Activ.Upr.SZ.List)
{( Z.ID_agenta ==
Program.Activ.nomer_agenta)
{.Items.Add(Z.naimenovanie);[kolvo]
= Z.nomer;++;
}
}
}void
listBox1_SelectedIndexChanged(object sender, EventArgs e)
{= listBox1.SelectedIndex;.Text =
null;.Text = null;.Text = null;.Text = null;.Text = null;.Text = null;.Text =
null;.Text = null;.Text = null;y=0;(int i = 0; i <= m.Length; i++)
{(i == index)
{= m[i];
}
}(курсовая_ддл.Zakazi Z in Program.Activ.Upr.SZ.List)
{(y ==Z.nomer)
{= Z.nomer;
}
}(курсовая_ддл.Zakazi Z2 in
Program.Activ.Upr.SZ.List)
{(nom == Z2.nomer)
{.SelectedText =
Convert.ToString(Z2.nomer);.SelectedText = Convert.ToString(Z2.naimenovanie);.SelectedText
= Convert.ToString(Z2.FIO_zakazchika);.SelectedText =
Convert.ToString(Z2.FIO_agenta);.SelectedText =
Convert.ToString(Z2.ID_agenta);.SelectedText =
Convert.ToString(Z2.oplata);.SelectedText =
Convert.ToString(Z2.kol_vo);.SelectedText = Convert.ToString(Z2.summa_zakaza);.SelectedText
= Convert.ToString(Z2.month);
}
}.ReadOnly = true;.ReadOnly =
true;.ReadOnly = true;.ReadOnly = true;
}void Агентам_FormClosing(object
sender, FormClosingEventArgs e)
{.Activ.Upr.SaveZakazi("Zakazi.xml");
}void выходToolStripMenuItem_Click(object
sender, EventArgs e)
{.Close();.Exit();
}void button3_Click(object sender,
EventArgs e)
{(textBox6.Text == "не
оплачено")
{.ReadOnly = false;.ReadOnly =
false;.ReadOnly = false;.ReadOnly = false;_old = Convert.ToInt32(textBox8.Text);
}
{.Show("Редактировать можно
только не оплаченные заказы.", "Запрет редактирования",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}void button4_Click(object sender,
EventArgs e)
{(radioButton1.Checked)
{
{poisk, lstr;not_find = true;= Convert.ToString(textBox9.Text);(int
i = 0; i < listBox1.Items.Count; i++)
{=
listBox1.Items[i].ToString();((lstr == poisk) & (not_find))
{(i > ukaz)
{= i;.SelectedIndex = i;_find =
false;
}
}(lstr != poisk)
{++;(x == listBox1.Items.Count)
{.Show("Заказ не найден.",
"Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}= 0;_ukaz = ukaz;
}{ MessageBox.Show("Ошибка
ввода!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); }
}(radioButton2.Checked)
{
{poisk_nom;
_nom =
Convert.ToInt32(textBox9.Text);
(int i = 0; i < m.Length; i++)
{(m[i] == poisk_nom)
{.SelectedIndex = i;
}(m[i] != poisk_nom)
{++;
(x == m.Length)
{.Show("Заказ по данному номеру
не найден.", "Информация", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}
}= 0;
}{ MessageBox.Show("Ошибка
ввода!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); }
}((!radioButton1.Checked) &&
(!radioButton2.Checked))
{.Show("Необходимо указать по
какому критерию Вы осуществляет поиск: по наименованию заказа или по номеру
заказа.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}void button5_Click(object sender,
EventArgs e)
{
курсовая_ддл.Zakazi Z = new
курсовая_ддл.Zakazi();naimenovanie, FIO_zakazchika;kol_vo, summa_zakaza;=
textBox2.Text;_zakazchika = textBox3.Text;_vo =
Convert.ToInt32(textBox7.Text);_zakaza = Convert.ToInt32(textBox8.Text);(int i
= 0; i <= m.Length; i++)
{(index == i)
{.Activ.Upr.SZ.List[m[i]].naimenovanie
= naimenovanie;.Activ.Upr.SZ.List[m[i]].FIO_zakazchika = FIO_zakazchika;.Activ.Upr.SZ.List[m[i]].kol_vo
= kol_vo;.Activ.Upr.SZ.List[m[i]].summa_zakaza = summa_zakaza;
}
}.Activ.Upr.SaveZakazi("Zakazi.xml");(курсовая_ддл.Zakazi
Z2 in Program.Activ.Upr.SZ.List)
{(Z2.summa_zakaza != sum_old)
{(курсовая_ддл.Agents AG2 in
Program.Activ.Upr.SAG.List)
{(Z2.ID_agenta == AG2.id)
{.summa_ot_zakazov -=
sum_old;.summa_ot_zakazov +=
Z2.summa_zakaza;.Activ.Upr.SaveAgents("Agents.xml");
}
}
}
}(File.Exists("Zakazi.xml")).Activ.Upr.LoadZakazi("Zakazi.xml");.Activate();.Items.Clear();=
new int[Program.Activ.Upr.SZ.List.Count];= 0;(курсовая_ддл.Zakazi Z4 in
Program.Activ.Upr.SZ.List)
{(Z4.ID_agenta ==
Program.Activ.nomer_agenta)
{.Items.Add(Z4.naimenovanie);[kolvo]
= Z4.nomer;++;
}
}.ReadOnly = true;.ReadOnly =
true;.ReadOnly = true;.ReadOnly = true;
}
}
}
Добавление заказа.cs
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.IO;курсовая
{partial class Добавление_заказа : Form
{Добавление_заказа()
{();
}void button2_Click(object sender, EventArgs e)
{.Hide();
}void Добавление_заказа_Load(object sender,
EventArgs e)
{.Text = null;.Text = null;.Text = null;.Text =
null;.Text = null;.Text = null;.Text = null;.Text = null;.Text = null;
курсовая_ддл.Zakazi Z = new
курсовая_ддл.Zakazi();.SelectedText = Convert.ToString(Z.nomer);.SelectedText =
Convert.ToString(Z.naimenovanie);(курсовая_ддл.Agents Ag in
Program.Activ.Upr.SAG.List)
{(Ag.id == Program.Activ.nomer_agenta)
{.SelectedText = Ag.fio;
}
}.SelectedText =
Convert.ToString(Z.FIO_zakazchika);.SelectedText =
Convert.ToString(Program.Activ.nomer_agenta);.SelectedText =
Convert.ToString(Z.FIO_agenta);.SelectedText = "не
оплачено";.SelectedText = Convert.ToString(Z.kol_vo);.SelectedText = Convert.ToString(Z.summa_zakaza);.SelectedText
= Convert.ToString(Z.month);
}void button1_Click(object sender, EventArgs e)
{
{((textBox2.Text == "") ||
(textBox3.Text == "") || (textBox4.Text == "") ||
(textBox7.Text == "") || (textBox8.Text == "") || (textBox9.Text
== "") || (Convert.ToInt32(textBox7.Text) <= 0) ||
(Convert.ToInt32(textBox8.Text) <= 0) || (Convert.ToInt32(textBox9.Text)
<= 0))
{.Show("Поле осталось пустым!",
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
{
курсовая_ддл.Zakazi Z = new
курсовая_ддл.Zakazi();naimenovanie, FIO_zakazchika, FIO_agenta,
oplata;ID_agenta, kol_vo, summa_zakaza,month;= textBox2.Text;_zakazchika =
textBox3.Text;_agenta = textBox4.Text;= Convert.ToInt32(textBox9.Text);_agenta
= Program.Activ.nomer_agenta;= "не оплачено";_vo =
Convert.ToInt32(textBox7.Text);_zakaza =
Convert.ToInt32(textBox8.Text);(курсовая_ддл.Agents Ag in
Program.Activ.Upr.SAG.List)
{(Program.Activ.nomer_agenta == Ag.id)
{.summa_ot_zakazov += summa_zakaza;
}
}.Activ.Upr.SZ.Add(Z.naimenovanie = naimenovanie,
Z.FIO_zakazchika = FIO_zakazchika, Z.FIO_agenta=FIO_agenta, Z.ID_agenta =
ID_agenta, Z.oplata = oplata, Z.nomer, Z.kol_vo = kol_vo, Z.summa_zakaza =
summa_zakaza,Z.month=month);.Activ.Upr.SaveZakazi("Zakazi.xml");.Agentam.listBox1.Items.Clear();(курсовая_ддл.Zakazi
ZZ in Program.Activ.Upr.SZ.List)
{.Agentam.listBox1.Items.Add(ZZ.naimenovanie);
}.Activ.Upr.SaveAgents("Agents.xml");.SpisAgent.listBox1.Items.Clear();(курсовая_ддл.Agents
AGT in Program.Activ.Upr.SAG.List)
{.SpisAgent.listBox1.Items.Add(AGT.fio);
}.Agentam.listBox1.Items.Clear();.Agentam.m =
new int[Program.Activ.Upr.SZ.List.Count];kolvo = 0;(курсовая_ддл.Zakazi Z2 in
Program.Activ.Upr.SZ.List)
{(Z2.ID_agenta == Program.Activ.nomer_agenta)
{.Agentam.listBox1.Items.Add(Z2.naimenovanie);.Agentam.m[kolvo]
= Z2.nomer;++;
}
}.Hide();
}
}{ MessageBox.Show("Ошибка ввода!",
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error); }
}void Добавление_заказа_FormClosing(object
sender, EventArgs e)
{
}
}
}
Form1.cs
using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;курсовая_ддл;System.IO;курсовая
{partial class Form1 : Form
{Form1()
{();
}void button4_Click(object sender,
EventArgs e)
{.Info.ShowDialog();
}void Form1_Load(object sender,
EventArgs e)
{(File.Exists("Agents.xml")).Activ.Upr.LoadAgents("Agents.xml");(File.Exists("Zakazi.xml")).Activ.Upr.LoadZakazi("Zakazi.xml");.Activate();
}void button3_Click(object sender,
EventArgs e)
{.Close();
}void button1_Click(object sender,
EventArgs e)
{.SpisAgent.ShowDialog();
}void button2_Click(object sender,
EventArgs e)
{.SpisZakaz.ShowDialog();
}void Form1_FormClosing(object
sender, FormClosingEventArgs e)
{.Activ.Upr.SaveAgents("Agents.xml");.Activ.Upr.SaveZakazi("Zakazi.xml");
}void
списокАгентовToolStripMenuItem_Click(object sender, EventArgs e)
{
}void
просмотретьСписокToolStripMenuItem_Click(object sender, EventArgs e)
{.SpisAgent.ShowDialog();
}void
просмотрСпискаToolStripMenuItem_Click(object sender, EventArgs e)
{.SpisZakaz.ShowDialog();
}void
информацияToolStripMenuItem_Click(object sender, EventArgs e)
{.Information.ShowDialog();
}void
авторыToolStripMenuItem_Click(object sender, EventArgs e)
{.Info.ShowDialog();
}void выходToolStripMenuItem_Click(object
sender, EventArgs e)
{.Close();.Exit();
}void button1_Click_1(object sender,
EventArgs e)
{
//Program.Mail.ShowDialog();
}void
добавитьАгентаToolStripMenuItem_Click(object sender, EventArgs e)
{.DAgent.ShowDialog();
}void заМесяцToolStripMenuItem_Click(object
sender, EventArgs e)
{.Z_m.ShowDialog();
}void
заКварталToolStripMenuItem_Click(object sender, EventArgs e)
{.Z_k.ShowDialog();
}
}
}
Список агентов.cs
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;курсовая
{partial class Список_агентов : Form
{int CurIndAG;x;Список_агентов()
{();
}void
listBox1_SelectedIndexChanged(object sender, EventArgs e)
{index =
listBox1.SelectedIndex;.Text = null;.Text = null;.Text = null;.Text =
null;.Text = null;.Text = null;.Text = null;.Text = null;.Text = null;.Text =
null;(курсовая_ддл.Agents AG in Program.Activ.Upr.SAG.List)
{(index == AG.id)
{.SelectedText =
Convert.ToString(AG.id);.SelectedText = Convert.ToString(AG.fio);.SelectedText
= Convert.ToString(AG.statys);.SelectedText =
Convert.ToString(AG.age);.SelectedText =
Convert.ToString(AG.adress);.SelectedText =
Convert.ToString(AG.tel);.SelectedText =
Convert.ToString(AG.e_mail);.SelectedText = Convert.ToString(AG.kolvo_zakazov_k);.SelectedText
= Convert.ToString(AG.kolvo_otrab_dnei_m);.SelectedText =
Convert.ToString(AG.summa_ot_zakazov);
}
}.ReadOnly = true;.ReadOnly =
true;.ReadOnly = true;.ReadOnly = true;.ReadOnly = true;.ReadOnly = true;.ReadOnly
= true;.ReadOnly = true;
}void
Список_агентов_FormClosing(object sender, FormClosingEventArgs e)
{.Activ.Upr.SaveAgents("Agents.xml");
}void Список_агентов_Load_1(object
sender, EventArgs e)
{.Items.Clear();(курсовая_ддл.Agents
AG in Program.Activ.Upr.SAG.List)
{.Items.Add(AG.fio);.kolvo_zakazov_k
= 0;.summa_ot_zakazov = 0;(курсовая_ддл.Zakazi Z in Program.Activ.Upr.SZ.List)
{(Z.ID_agenta == AG.id)
{.kolvo_zakazov_k++;.summa_ot_zakazov
+= Z.summa_zakaza;
}
}
}
}void button5_Click(object sender,
EventArgs e)
{.Text = null;.Text = null;.Text =
null;.Text = null;.Text = null;.Text = null;.Text = null;.Text = null;.Text =
null;.Text = null;.Hide();
}void button4_Click_1(object sender,
EventArgs e)
{(radioButton1.Checked)
{poisk, lstr;= Convert.ToString(textBox1.Text);(int
i = 0; i < listBox1.Items.Count; i++)
{=
listBox1.Items[i].ToString();(lstr == poisk)
{.SelectedIndex = i;
}(lstr != poisk)
{++;(x == listBox1.Items.Count)
{.Show("Агент не найден.",
"Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
} x = 0;
}{ MessageBox.Show("Ошибка
ввода!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); }
}(radioButton2.Checked)
{
{p;=
Convert.ToInt32(textBox1.Text);(int i = 0; i < listBox1.Items.Count; i++)
{(i == p)
{.SelectedIndex = i;
}(i != p)
{++;(x == listBox1.Items.Count)
{.Show("Агент по данному ID не
найден.", "Информация", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}
}= 0;
}{ MessageBox.Show("Ошибка
ввода! Для поиска введите ID агента.", "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error); }
}((!radioButton1.Checked)&&(!radioButton2.Checked))
{.Show("Необходимо указать по
какому критерию Вы осуществляет поиск: по ФИО агента или по ID агента.",
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}void button2_Click_1(object sender,
EventArgs e)
{.DAgent.ShowDialog();
}void button3_Click(object sender,
EventArgs e)
{.ReadOnly = false;.ReadOnly =
false;.ReadOnly = false;.ReadOnly = false;.ReadOnly = false;.ReadOnly =
false;.ReadOnly = false;
}void button6_Click(object sender,
EventArgs e)
{
курсовая_ддл.Agents AG = new
курсовая_ддл.Agents();FIO_agenta, statys, adres, e_mail;age, tel,
kolvo_dnei;_agenta=textBox3.Text;=textBox4.Text;=Convert.ToInt32(textBox5.Text);=textBox6.Text;=Convert.ToInt32(textBox12.Text);_mail=textBox7.Text;_dnei=Convert.ToInt32(textBox10.Text);.Activ.Upr.SAG.List[listBox1.SelectedIndex].fio
=FIO_agenta ;.Activ.Upr.SAG.List[listBox1.SelectedIndex].statys =
statys;.Activ.Upr.SAG.List[listBox1.SelectedIndex].age =
age;.Activ.Upr.SAG.List[listBox1.SelectedIndex].adress =
adres;.Activ.Upr.SAG.List[listBox1.SelectedIndex].tel =
tel;.Activ.Upr.SAG.List[listBox1.SelectedIndex].e_mail =
e_mail;.Activ.Upr.SAG.List[listBox1.SelectedIndex].kolvo_otrab_dnei_m =
kolvo_dnei;.Activ.Upr.SaveAgents("Agents.xml");.ReadOnly =
true;.ReadOnly = true;.ReadOnly = true;.ReadOnly = true;.ReadOnly =
true;.ReadOnly = true;.ReadOnly = true;
}
}
}
Добавление агента.cs
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;курсовая
{partial class Добавление_агента :
Form
{Добавление_агента()
{();
}void button2_Click(object sender,
EventArgs e)
{.Hide();
}void Добавление_агента_Load(object
sender, EventArgs e)
{.Text = null;.Text = null;.Text =
null;.Text = null;.Text = null;.Text = null;.Text = null;.Text = null;.Text =
null;.Text = null;
курсовая_ддл.Agents AG = new
курсовая_ддл.Agents();.SelectedText = Convert.ToString(AG.id);.SelectedText =
Convert.ToString(AG.fio);.SelectedText = "агент";.SelectedText =
Convert.ToString(AG.age);.SelectedText =
Convert.ToString(AG.adress);.SelectedText =
Convert.ToString(AG.tel);.SelectedText =
Convert.ToString(AG.e_mail);.SelectedText =
Convert.ToString(AG.kolvo_zakazov_k);.SelectedText = Convert.ToString(AG.kolvo_otrab_dnei_m);.SelectedText
= Convert.ToString(AG.summa_ot_zakazov);
}void button1_Click(object sender,
EventArgs e)
{
{((textBox2.Text == "") ||
(textBox4.Text == "") || (textBox5.Text == "") ||
(textBox6.Text == "") || (textBox7.Text == "") || (textBox9.Text
== "") || (textBox10.Text ==
"")||(Convert.ToInt32(textBox4.Text)<=0)||(Convert.ToInt32(textBox6.Text)<=0))
{.Show("Поле осталось
пустым!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
{fio, statys, adress, e_mail;age,
tel, kolvo_zakazov_k, kolvo_otrab_dnei_m, summa_ot_zakazov;= textBox2.Text;=
textBox3.Text;= Convert.ToInt32(textBox4.Text);= textBox5.Text;=
Convert.ToInt32(textBox6.Text);_mail = textBox7.Text;_zakazov_k =
Convert.ToInt32(textBox9.Text);_otrab_dnei_m = Convert.ToInt32(textBox10.Text);_ot_zakazov
= Convert.ToInt32(textBox11.Text);
курсовая_ддл.Agents AG = new
курсовая_ддл.Agents();.Activ.Upr.SAG.Add(AG.fio = fio, AG.statys = statys,
AG.age = age, AG.adress = adress, AG.tel = tel, AG.e_mail = e_mail,
AG.kolvo_zakazov_k = kolvo_zakazov_k, AG.kolvo_otrab_dnei_m =
kolvo_otrab_dnei_m, AG.summa_ot_zakazov = summa_ot_zakazov,
AG.id);.Activ.Upr.SaveAgents("Agents.xml");.SpisAgent.listBox1.Items.Clear();(курсовая_ддл.Agents
AGT in Program.Activ.Upr.SAG.List)
{.SpisAgent.listBox1.Items.Add(AGT.fio);
}.Hide();
}
}{ MessageBox.Show("Ошибка
ввода!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); }
}void
Добавление_агента_FormClosing(object sender, EventArgs e)
{
}
}
}
Список заказов.cs
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;курсовая_ддл;System.IO;курсовая
{partial class Список_заказов : Form
{x;ukaz = -1;Список_заказов()
{();
}void button1_Click(object sender,
EventArgs e)
{.Text = null;.Text = null;.Text =
null;.Text = null;.Text = null;.Text = null;.Text = null;.Text = null;.Text =
null;.Hide();
}void Список_заказов_Load(object
sender, EventArgs e)
{(File.Exists("Zakazi.xml")).Activ.Upr.LoadZakazi("Zakazi.xml");.Activate();.Items.Clear();(курсовая_ддл.Zakazi
Z in Program.Activ.Upr.SZ.List)
{.Items.Add(Z.naimenovanie);
}
}void
listBox1_SelectedIndexChanged(object sender, EventArgs e)
{index =
listBox1.SelectedIndex;.Text = null;.Text = null;.Text = null;.Text =
null;.Text = null;.Text = null;.Text = null;.Text = null;.Text =
null;(курсовая_ддл.Zakazi Z2 in Program.Activ.Upr.SZ.List)
{(index==Z2.nomer)
{.SelectedText =
Convert.ToString(Z2.nomer);.SelectedText =
Convert.ToString(Z2.naimenovanie);.SelectedText =
Convert.ToString(Z2.FIO_zakazchika);.SelectedText =
Convert.ToString(Z2.FIO_agenta);.SelectedText =
Convert.ToString(Z2.ID_agenta);.SelectedText =
Convert.ToString(Z2.oplata);.SelectedText =
Convert.ToString(Z2.kol_vo);.SelectedText =
Convert.ToString(Z2.summa_zakaza);.SelectedText = Convert.ToString(Z2.month);
}
}
}void
Список_заказов_FormClosing(object sender, FormClosingEventArgs e)
{
//Program.Activ.Upr.SaveZakazi("Zakazi.xml");
}void button3_Click(object sender,
EventArgs e)
{(textBox9.Text == "не
оплачено")
{dr = MessageBox.Show("Заказ
оплачен?", "Фиксирование оплаты", MessageBoxButtons.YesNo,
MessageBoxIcon.Question);(dr)
{DialogResult.Yes: textBox9.Text =
null; textBox9.Text = "оплачено";
курсовая_ддл.Zakazi Z = new
курсовая_ддл.Zakazi();oplata;= Convert.ToString(textBox9.Text);.Activ.Upr.SZ.List[listBox1.SelectedIndex].oplata
= oplata;.Activ.Upr.SaveZakazi("Zakazi.xml");;DialogResult.No: break;
}
}//(textBox9.Text ==
"оплачено")
{.Show("Фиксировать оплату
можно только у не оплаченных заказов.", "Не соответствие",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}void button4_Click(object sender,
EventArgs e)
{(radioButton1.Checked)
{
{poisk, lstr;not_find = true;=
Convert.ToString(textBox1.Text);(int i = 0; i < listBox1.Items.Count; i++)
{= listBox1.Items[i].ToString();((lstr
== poisk) & (not_find))
{(i > ukaz)
{= i;.SelectedIndex = i;_find =
false;
}
}(lstr != poisk)
{++;(x == listBox1.Items.Count)
{.Show("Заказ не найден.",
"Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}= 0;
}{ MessageBox.Show("Ошибка
ввода!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); }
}(radioButton2.Checked)
{
{p;=
Convert.ToInt32(textBox1.Text);(int i = 0; i < listBox1.Items.Count; i++)
{(i == p)
{.SelectedIndex = i;
}(i != p)
{++;(x == listBox1.Items.Count)
{.Show("Заказ по данному номеру
не найден.", "Информация", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}
}= 0;
}{ MessageBox.Show("Ошибка
ввода! Для поиска введите номер заказа.", "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error); }
}((!radioButton1.Checked) &&
(!radioButton2.Checked))
{.Show("Необходимо указать по
какому критерию Вы осуществляет поиск: по наименованию заказа или по номеру
заказа.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
Почта.cs
using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.Net.Mail;System.Net;System.Net.Mime;курсовая
{partial class Почта : Form
{Почта()
{();
}string file;void
button1_Click(object sender, EventArgs e)
{
//Авторизация на SMTP сервереSmtp =
new SmtpClient("smtp.mail.ru", 25);
//Smtp.Credentials = new
NetworkCredential("elena94024", textBox3.Text.Trim());.Credentials =
new NetworkCredential("didi17@bk.ru",
textBox3.Text.Trim());.EnableSsl = false;checkaddr = false;checksubj =
false;checksubp = false;(textBox1.TextLength > 0) checkaddr =
true;(checkaddr == false) MessageBox.Show("Введите адрес
получателя!");(textBox2.TextLength > 0) checksubj = true;(checksubj ==
false) MessageBox.Show("Введите тему
сообщения!");(textBox3.TextLength > 0) checksubp = true;(checksubp ==
false) MessageBox.Show("Введите пароль!");(checkaddr == true &
checksubj == true & checksubp == true)
{Msg = new MailMessage();
//Msg.From = new
MailAddress("elena94024@mail.ru");.From = new
MailAddress("didi17@bk.ru");.To.Add(new
MailAddress(textBox1.Text.ToString()));.Subject =
textBox2.Text.ToString();.Body = richTextBox1.Text;file =
openFileDialog1.FileName.ToString(); ;attach = new Attachment(file,
MediaTypeNames.Application.Octet);disposition =
attach.ContentDisposition;.CreationDate =
System.IO.File.GetCreationTime(file);.ModificationDate =
System.IO.File.GetLastWriteTime(file);.ReadDate =
System.IO.File.GetLastAccessTime(file);.Attachments.Add(attach);
{.Send(Msg);//!!!отправка.Show("Сообщение
отправлено!");
}
{ MessageBox.Show("Неправильный
ввод!"); }
}
{ MessageBox.Show("Некоторые
поля остались незаполнеными!"); }
}void button2_Click(object sender,
EventArgs e)
{.Close();
}void Почта_Load(object sender,
EventArgs e)
{
}
}
}
Информация.cs
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;курсовая
{partial class Информация : Form
{Информация()
{();
}void button1_Click(object sender,
EventArgs e)
{.Close();
}void Информация_Load(object sender,
EventArgs e)
{
}
}
}
Информация о проекте.cs
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;курсовая
{partial class Авторы : Form
{Авторы()
{();
}void button1_Click(object sender, EventArgs e)
{.Hide();
}void Авторы_Load(object sender, EventArgs e)
{
}
}
}
Program.cs
using
System;System.Collections.Generic;System.Linq;System.Windows.Forms;курсовая
{class Program
{static Form1 f1;static
Добавление_агента DAgent;static Добавление_заказа DZakaz;static Авторы
Info;static Почта Mail;static Управляющий_2 Upr2;static Список_агентов
SpisAgent;static Список_заказов SpisZakaz;static Информация Information;static
Зарплата_за_месяц Z_m;static Параметры_зарплаты Zarp_Param;static
Зарплата_за_квартал Z_k;static Параметры_премии Premia_Param;static log
Activ;static Агентам Agentam;
/// <summary>
/// The main entry point for the
application.
/// </summary>
[STAThread]void Main()
{.EnableVisualStyles();.SetCompatibleTextRenderingDefault(false);=
new Form1();= new Добавление_агента();= new Добавление_заказа();= new
Авторы();= new Почта();= new Управляющий_2();= new Список_агентов();= new
Список_заказов();= new Информация();_m = new Зарплата_за_месяц();_Param = new
Параметры_зарплаты();_k = new Зарплата_за_квартал();_Param = new
Параметры_премии();= new log();= new Агентам();.Run(Activ);
}
}
}
курсовая
DLL.cs
using
System;System.Collections.Generic;System.Linq;System.Text;курсовая_ддл
{class Agents
{int id;int ID
{
{ return id; }
//set
//{ number = value; }
}string fio;string Fio
{
{ return fio; }
{ fio = value; }
}string statys;string Statys
{
{ return statys; }
{ statys = value; }
}int age;int Age
{
{ return age; }
{ age = value; }
}string adress;string Adress
{
{ return adress; }
{ adress = value; }
}int tel;int Tel
{
{ return tel; }
{ tel = value; }
}string e_mail;string E_mail
{
{ return e_mail; }
{ e_mail = value; }
}int kolvo_zakazov_k;int Kolvo_zakazov_k
{
{ return kolvo_zakazov_k; }
{ kolvo_zakazov_k = value; }
}int kolvo_otrab_dnei_m;int
Kolvo_otrab_dnei_m
{
{ return kolvo_otrab_dnei_m; }
{ kolvo_otrab_dnei_m = value; }
}decimal summa_ot_zakazov;decimal
Summa_ot_zakazov
{
{ return summa_ot_zakazov; }
{ summa_ot_zakazov = value; }
}Agents()
{ }Agents(string f,string s,int
a,string ads,int t,string e_m,int k_z_k,int k_d_m,decimal sum,int id)
{.fio = f;.statys = s;.age =
a;.adress = ads;.tel = t;.e_mail = e_m;.kolvo_zakazov_k = k_z_k;.kolvo_otrab_dnei_m
= k_d_m;.summa_ot_zakazov = sum;.id = id;
}
}class SpisokAgents
{SpisokAgents()
{ }List<Agents> List = new
List<Agents>();void Add( string f, string s, int a, string ads, int t,
string e_m, int k_z_k, int k_d_m, decimal sum,int id)
{obj = new Agents(f, s, a, ads, t,
e_m, k_z_k, k_d_m, sum,List.Count);.Add(obj);
}
}
}
Zakazi.cs
using
System;System.Collections.Generic;System.Linq;System.Text;курсовая_ддл
{class Zakazi
{int nomer;int Nomer
{
{ return nomer; }
//set
//{ index = value; }
}string naimenovanie;string
Naimenovanie
{
{ return naimenovanie; }
{ naimenovanie = value; }
}int kol_vo;int Kol_vo
{
{ return kol_vo; }
{ kol_vo = value; }
}decimal summa_zakaza;decimal
Summa_zakaza
{
{ return summa_zakaza; }
{ summa_zakaza = value; }
}string FIO_zakazchika;string
Fio_zakazchika
{
{ return FIO_zakazchika; }
{ FIO_zakazchika = value; }
}string FIO_agenta;string Fio_agenta
{
{ return FIO_agenta; }
{ FIO_agenta = value; }
}int ID_agenta;int id_agenta
{
{ return ID_agenta; }
{ ID_agenta = value; }
}string oplata;string Oplata
{
{ return oplata; }
{ oplata = value; }
}int month;int Month
{{ return month; }{ month = value; }
}Zakazi()
{ }Zakazi( string naim, int kol,
decimal sum, string fio_z, string fio_ag, int id_agenta, string opl,int n,int month)
{.naimenovanie = naim;.kol_vo =
kol;.summa_zakaza = sum;.FIO_zakazchika = fio_z;.FIO_agenta = fio_ag;.ID_agenta
= id_agenta;.oplata = opl;.nomer = n;.month = month;
}
}class SpisokZakazov
{SpisokZakazov()
{ }List<Zakazi> List = new
List<Zakazi>();void Add(string naim, string fio_z, string fio_ag, int
id_agenta, string opl, int n, int kol, decimal sum,int month)
{obj = new Zakazi(naim, kol, sum,
fio_z, fio_ag, id_agenta, opl, List.Count, month);.Add(obj);
}
}
}
Вывод
Данная программа может быть использована на
предприятие для учёта заработной платы агентов по продажам. Это может быть
продажа интернета, кабельного TV,
недвижимости, косметики, или оформления заказов на услуги. В данной программе я
брала за пример работу агентов по продажам компьютерной техники.
Особенностью программы, является то, что она не
только ведёт учёт заработной платы агентов, но и даёт возможность посмотреть
наименее и наиболее результативных, и по результатам их работы назначить
повышение.
В программе предусмотрены основные функции
агентов по продажам, и обязанности бухгалтера.