На нашем сайте Вы сможете найти готовые курсовые и дипломные работы по программированию
Сейчас работаем

Учет работ (C#, WPF, SqLite, SQL Server )

Задание

Разработать приложение на языке C# для учета выполненных работ и расчета их стоимости исходя из затраченного времени и часовой ставки. 

Функционал программы

    • добавление / удаление / редактирование работ
    • рассчет суммы за выполненную работу
    • регистрация / авторизация пользователя
    • кабинет пользователя

Фрагмент программного кода

using System;
using System.Linq;
using System.Windows;
using WMS.BL.Interfaces;
using WMS.BL.Models;

namespace WMS.UI.Windows
{
    /// <summary>
    /// Логика взаимодействия для AddWorksWindow.xaml
    /// </summary>
    public partial class AddWorksWindow : Window
    {
        /// <summary>
        /// Список допустимых национальностей
        /// </summary>
        private static readonly string[] Statuses = { "Выполняется", "Завершена", "Заморожена" };
        /// <summary>
        /// Поле хранит идентификатор работы
        /// </summary>
        private int _id;
        public AddWorksWindow()
        {
            InitializeComponent();

            //Передаем допустимые значения
            cbStatus.ItemsSource = Statuses;
            //Задаем начальное значение
            cbStatus.SelectedIndex = 0;
        }

        private void BtnCancel_Click(object sender, RoutedEventArgs e)
        {
            Close();
        }

        private void BtnCalc_Click(object sender, RoutedEventArgs e)
        {
            double numberHours;
            double hourlyRate;

            numberHours = Convert.ToDouble(NumberHoursTb.Text);
            hourlyRate = Convert.ToDouble(HourlyRateTb.Text);

            switch (CbCalc.Text)
            {
                case "*":

                    AmountTb.Text = Convert.ToString(numberHours * hourlyRate);
                    break;
                default:
                    break;
            }
        }

        private void BtnClear_Click(object sender, RoutedEventArgs e)
        {
            WorkNameTb.Text = "";
            StartDateTb.Text = "";
            EndDateTb.Text = "";
            EmployeeNameTb.Text = "";            
            NumberHoursTb.Text = "";
            HourlyRateTb.Text = "";
            AmountTb.Text = "";
            CbCalc.Items.Clear();
        }

        private void BtnSave_Click(object sender, RoutedEventArgs e)
        {
            int? endDate = null;

            if (string.IsNullOrEmpty(WorkNameTb.Text))
            {
                MessageBox.Show("Поле наименование работ не может быть пустым", "Проверка");
                return;
            }

            if (string.IsNullOrEmpty(EmployeeNameTb.Text))
            {
                MessageBox.Show("Поле сотрудник не может быть пустым", "Проверка");
                return;
            }

            if (string.IsNullOrEmpty(NumberHoursTb.Text))
            {
                MessageBox.Show("Поле часы  не может быть пустым", "Проверка");
                return;
            }

            if (string.IsNullOrEmpty(HourlyRateTb.Text))
            {
                MessageBox.Show("Поле ставка  не может быть пустым", "Проверка");
                return;
            }

            if (string.IsNullOrEmpty(AmountTb.Text))
            {
                MessageBox.Show("Поле сумма не может быть пустым", "Проверка");
                return;
            }

            if (!int.TryParse(StartDateTb.Text, out int startDate))
            {
                MessageBox.Show("Дата начала  должена быть целым числом", "Проверка");
                return;
            }

            if (!string.IsNullOrEmpty(EndDateTb.Text))
            {
                if (!int.TryParse(EndDateTb.Text, out int intEnd))
                {
                    MessageBox.Show("Дата завершения должена быть целым числом", "Проверка");
                    return;
                }
                if (intEnd < startDate)
                {
                    MessageBox.Show("Дата завершения должна быть больше даты начала", "Проверка");
                    return;
                }
                endDate = intEnd;
            }

            //Создаем объект для передачи данных
            WorkDto work = new WorkDto
            {
                //Заполняем объект данными
                WorkName = WorkNameTb.Text,
                StartDate = startDate,
                EndDate = endDate,
                EmployeeName = EmployeeNameTb.Text,
                Status = cbStatus.SelectedItem.ToString(),
                NumberHours = NumberHoursTb.Text,
                HourlyRate = HourlyRateTb.Text,
                Amount = AmountTb.Text
            };
            //Именно тут запрашиваем реализованную ранее задачу по работе с сотрудниками
            IWorkProcess workProcess = ProcessFactory.GetWorkProcess();
            //если это новый объект - сохраняем его
            if (_id == 0)
            {
                // Сохраняем сотрудника
                workProcess.Add(work);
            }
            else //иначе обновляем
            {
                //копируем обратно идентификатор объекта
                work.Id = _id;
                //обновляем
                workProcess.Update(work);
            }
            //и закрываем форму
            Close();
        }

        public void Load(WorkDto work)
        {
            //если объект не существует, или его статус не в списке допустимых, выходим
            if (work == null || !Statuses.Contains(work.Status))
            {
                return;
            }
            //сохраняем id сотрудника
            _id = work.Id;
            //заполняем визуальные компоненты для отображения данных            

            WorkNameTb.Text = work.WorkName;
            StartDateTb.Text = work.StartDate.ToString();
            if (work.EndDate.HasValue)
            {
                EndDateTb.Text = work.EndDate.Value.ToString();
            }
            EmployeeNameTb.Text = work.EmployeeName;
            cbStatus.SelectedItem = work.Status;
            NumberHoursTb.Text = work.NumberHours;
            HourlyRateTb.Text = work.HourlyRate;
            AmountTb.Text = work.Amount;
        }
    }
}

Структура проекта

Скриншот архива с проектом

Пояснения по запуску программы

Запустить Visual Studio, сменить путь к базе данных, запустить код на выполнение. 

Купить 2000,00 
Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.
Комментарии (0)

/ /

Оставить комментарий

Ты не можешь комментировать

Только зарегистрированые пользователи имеют возможность комментировать работы
Купить

2000,00 

Покупается впервые!
Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.

Заказать через

Учет работ.rar
68457867
Оцени работу

рейтинг

Учет работ (C#, WPF, SqLite, SQL Server )
Программа позволяет вести учет работ, а также делать расчет суммы, которую работник заработал выполняя данную работу. Программа является улучшеной версией программы - Менеджмент рабочего времени.
Категория: Образование
Стоимость: 2000,00