Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Лучше не лучше, но лучше.
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
1

Начисление пени

19.02.2019, 13:19. Показов 526. Ответов 3

Author24 — интернет-сервис помощи студентам
Ну вот дописал, я свое чудо... Все работает, но есть один нюанс.., почему когда я изменяю запись, то начисление пени не происходит? Foreach не проходит по всем записям?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
       //НАЧИСЛЕНИЕ ПЕНИ
 
        public static string timeNow = DateTime.Now.ToString("yyyy-MM-dd");
 
 
        private void Form12_Load(object sender, EventArgs e)
        {
            
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {                  //ЕСЛИ ТЕКУЩЕЕ ВРЕМЯ БОЛЬШЕ ДАТЫ ВОЗВРАТА И СОХРАНЕННОЕ ВРЕМЯ НЕ РАВНО ТЕКУЩЕМУ
 
                if (((Convert.ToDateTime(timeNow) > Convert.ToDateTime(row.Cells["d_of_ret"].Value)) && (Convert.ToSingle(row.Cells["penalty"].Value)) == 0) && (Convert.ToString(row.Cells["d_of_penalty"].Value) == "1111.11.11"))
                {
                    //VARS
                    float val = Convert.ToSingle(row.Cells["penalty"].Value); //ЗНАЧЕНИЕ ПЕНИ
                    MessageBox.Show(Convert.ToString(val));
                    float book_val = Convert.ToSingle(row.Cells["book_val"].Value); //СТОИМОСТЬ КНИГИ
                    MessageBox.Show(Convert.ToString(book_val));
                    string d_of_pen = row.Cells["d_of_penalty"].Value.ToString();
                    string id = row.Cells["id"].Value.ToString();
                    TimeSpan timeSpan = Convert.ToDateTime(timeNow) - Convert.ToDateTime(row.Cells["d_of_ret"].Value); //РАЗНИЦА ВО ВРЕМЕНИ
 
                    MySqlConnection coon = new MySqlConnection(connStr);
                    BindingSource bindingSorce = new BindingSource();
                    MySqlCommand cmd = new MySqlCommand();
                    cmd.Connection = coon;
                    val = ((book_val) / 9) * (int)(timeSpan.TotalDays);
                    MessageBox.Show(Convert.ToString(val));
                    d_of_pen = Convert.ToString(timeNow);
                        cmd.CommandText = "UPDATE issued_books set penalty=@penya, d_of_penalty=@d_of_pen where id=@id";
 
                    coon.Open();
                    cmd.Parameters.AddWithValue("@penya", Convert.ToString(val));
                    cmd.Parameters.AddWithValue("@d_of_pen", Convert.ToString(d_of_pen));
                    cmd.Parameters.AddWithValue("@id", Convert.ToString(id));
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("Record Updated Successfully");
                    coon.Close();
 
                }
                else if ((Convert.ToDateTime(timeNow) > Convert.ToDateTime(row.Cells["d_of_penalty"].Value)) && (Convert.ToDateTime(row.Cells["d_of_penalty"].Value) != Convert.ToDateTime(timeNow)) && ((Convert.ToSingle(row.Cells["penalty"].Value)) != 0) && (Convert.ToString(row.Cells["d_of_penalty"].Value) != "1111.11.11"))
                {
 
                    //VARS
                    float val = Convert.ToSingle(row.Cells["penalty"].Value); //ЗНАЧЕНИЕ ПЕНИ
                    string d_of_pen = row.Cells["d_of_penalty"].Value.ToString();
                    string id = row.Cells["id"].Value.ToString();
                    TimeSpan timeSpan = Convert.ToDateTime(timeNow) - Convert.ToDateTime(row.Cells["d_of_penalty"].Value);
 
                    MySqlConnection coon = new MySqlConnection(connStr);
                    BindingSource bindingSorce = new BindingSource();
                    MySqlCommand cmd = new MySqlCommand();
                    cmd.Connection = coon;
 
                    if ((int)(timeSpan.TotalHours) == 1)
                    {
                        val = val + val;
                        MessageBox.Show(Convert.ToString(val));
                    }
                    else
                    {
                        val = val * (int)(timeSpan.TotalDays);
                        MessageBox.Show(Convert.ToString(val));
                    }
                    d_of_pen = Convert.ToString(timeNow);
                    //ЕСЛИ ЕСТЬ ТО НАКИДЫВАЕМ СВЕРХУ
                    cmd.CommandText = "UPDATE issued_books set penalty=@penya, d_of_penalty=@d_of_pen where id=@id";
 
                    coon.Open();
                    cmd.Parameters.AddWithValue("@penya", Convert.ToString(val));
                    cmd.Parameters.AddWithValue("@d_of_pen", Convert.ToString(d_of_pen));
                    cmd.Parameters.AddWithValue("@id", Convert.ToString(id));
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("Record Updated Successfully");
                    coon.Close();
                }
                else if((Convert.ToDateTime(timeNow) == Convert.ToDateTime(row.Cells["d_of_penalty"].Value)))
                {
                    break;
                }
 
            }
 
        }
Миниатюры
Начисление пени  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.02.2019, 13:19
Ответы с готовыми решениями:

Начисление пени
Памагити:), Код раскомментирован... //НАЧИСЛЕНИЕ ПЕНИ public static string...

Начисление бонусов (операторы if)
using System; /* * Условие задачи * если сумма покупки равна 1-999 начисление бонуксов 2%...

Начисление ежедневной пени
Доброе утро. подскажите как сделать так, чтоб определённая сума ежедневно умножалась на 0,3% ? к...

Расчёт пени
В общем помогите сообразить как сделать так: Шершу ваш форум и гугл.

3
Лучше не лучше, но лучше.
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
19.02.2019, 13:25  [ТС] 2
Можно ли это переделать без foreach'a? или в чем проблема?
0
Лучше не лучше, но лучше.
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
20.02.2019, 07:19  [ТС] 3
Проблема была в break'e...

Вот итоговый рабочий варик...

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
 //НАЧИСЛЕНИЕ ПЕНИ
 
        public static string timeNow = DateTime.Now.ToString("yyyy-MM-dd");
 
 
        private void Form12_Load(object sender, EventArgs e)
        {
            
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {                  //ЕСЛИ ТЕКУЩЕЕ ВРЕМЯ БОЛЬШЕ ДАТЫ ВОЗВРАТА И СОХРАНЕННОЕ ВРЕМЯ НЕ РАВНО ТЕКУЩЕМУ
 
                if (((Convert.ToDateTime(timeNow) > Convert.ToDateTime(row.Cells["d_of_ret"].Value)) && (Convert.ToSingle(row.Cells["penalty"].Value)) == 0) && (Convert.ToString(row.Cells["d_of_penalty"].Value) == "1111.11.11"))
                {
                    //VARS
                    float val = Convert.ToSingle(row.Cells["penalty"].Value); //ЗНАЧЕНИЕ ПЕНИ
                    MessageBox.Show(Convert.ToString(val));
                    float book_val = Convert.ToSingle(row.Cells["book_val"].Value); //СТОИМОСТЬ КНИГИ
                    MessageBox.Show(Convert.ToString(book_val));
                    string d_of_pen = row.Cells["d_of_penalty"].Value.ToString();
                    string id = row.Cells["id"].Value.ToString();
                    TimeSpan timeSpan = Convert.ToDateTime(timeNow) - Convert.ToDateTime(row.Cells["d_of_ret"].Value); //РАЗНИЦА ВО ВРЕМЕНИ
 
                    MySqlConnection coon = new MySqlConnection(connStr);
                    BindingSource bindingSorce = new BindingSource();
                    MySqlCommand cmd = new MySqlCommand();
                    cmd.Connection = coon;
                    val = ((book_val) / 9) * (int)(timeSpan.TotalDays);
                    MessageBox.Show(Convert.ToString(val));
                    d_of_pen = Convert.ToString(timeNow);
                        cmd.CommandText = "UPDATE issued_books set penalty=@penya, d_of_penalty=@d_of_pen where id=@id";
 
                    coon.Open();
                    cmd.Parameters.AddWithValue("@penya", Convert.ToString(val));
                    cmd.Parameters.AddWithValue("@d_of_pen", Convert.ToString(d_of_pen));
                    cmd.Parameters.AddWithValue("@id", Convert.ToString(id));
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("Record Updated Successfully");
                    coon.Close();
 
                }
                if ((Convert.ToDateTime(timeNow) > Convert.ToDateTime(row.Cells["d_of_penalty"].Value)) && (Convert.ToDateTime(row.Cells["d_of_penalty"].Value) != Convert.ToDateTime(timeNow)) && ((Convert.ToSingle(row.Cells["penalty"].Value)) != 0) && (Convert.ToString(row.Cells["d_of_penalty"].Value) != "1111.11.11"))
                {
 
                    //VARS
                    float val = Convert.ToSingle(row.Cells["penalty"].Value); //ЗНАЧЕНИЕ ПЕНИ
                    string d_of_pen = row.Cells["d_of_penalty"].Value.ToString();
                    string id = row.Cells["id"].Value.ToString();
                    TimeSpan timeSpan = Convert.ToDateTime(timeNow) - Convert.ToDateTime(row.Cells["d_of_penalty"].Value);
 
                    MySqlConnection coon = new MySqlConnection(connStr);
                    BindingSource bindingSorce = new BindingSource();
                    MySqlCommand cmd = new MySqlCommand();
                    cmd.Connection = coon;
 
                    if ((int)(timeSpan.TotalHours) == 1)
                    {
                        val = val + val;
                        MessageBox.Show(Convert.ToString(val));
                    }
                    else
                    {
                        val = val * (int)(timeSpan.TotalDays);
                        MessageBox.Show(Convert.ToString(val));
                    }
                    d_of_pen = Convert.ToString(timeNow);
                    //ЕСЛИ ЕСТЬ ТО НАКИДЫВАЕМ СВЕРХУ
                    cmd.CommandText = "UPDATE issued_books set penalty=@penya, d_of_penalty=@d_of_pen where id=@id";
 
                    coon.Open();
                    cmd.Parameters.AddWithValue("@penya", Convert.ToString(val));
                    cmd.Parameters.AddWithValue("@d_of_pen", Convert.ToString(d_of_pen));
                    cmd.Parameters.AddWithValue("@id", Convert.ToString(id));
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("Record Updated Successfully");
                    coon.Close();
                }
                if((Convert.ToDateTime(timeNow) == Convert.ToDateTime(row.Cells["d_of_penalty"].Value)))
                {
                    
                }
 
            }
 
        }
Миниатюры
Начисление пени  
0
Лучше не лучше, но лучше.
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
20.02.2019, 07:22  [ТС] 4
Вот еще ссылки по теме..

Начисление пени

Оповещения по Дате

Добавлено через 1 минуту
https://stackoverflow.com/ques... ual-studio
0
20.02.2019, 07:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.02.2019, 07:22
Помогаю со студенческими работами здесь

Расчёт пени
Приветствую Вас, форумчане! Проблема следующая. Компания занимается реализацией авто в рассрочку....

Расчёт пени
В документе Задолженности в поле табличной части Пеня рассчитать собственно пеню. Исходная сумма...

Расчет пени по срокам
Доброго времени всем ребят, помогите решить проблему с расчетом пени. Есть определенная сумма,...

Запрос на вычислении пени
Здравствуйте. Неполучается написать запрос на вычисление пени. Выдает по нулям. Запрос таков:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru