public static void SetFine(int days, int idclaim, BClaim claim) { try { using (SQLiteConnection conn = new SQLiteConnection(connstr)) { conn.Open(); string query = $"SELECT fineday FROM Loan WHERE id = {idclaim}"; SQLiteCommand cmd = new SQLiteCommand(query, conn); int res = Convert.ToInt32(cmd.ExecuteScalar()); days += res; double proc = 1.0; if (claim.SumLoan > 35000) { proc = 2.0; } double sumfine = (double)claim.SumLoan * (proc / 100.0) * (double)days; if (sumfine > (claim.SumLoan * (0.2))) { sumfine = Math.Round(claim.SumLoan * (0.2), 0); } string query2 = $"UPDATE Loan SET fineday = {days},sum_paid = {claim.SumPaid + sumfine} WHERE id = {idclaim}"; SQLiteCommand cmd2 = new SQLiteCommand(query2, conn); cmd2.ExecuteNonQuery(); conn.Close(); } } catch (Exception) { } }
private void buttonPay_Click(object sender, EventArgs e) { BaseDataLite bd = new BaseDataLite(); DataTable loantb = bd.GetLoanbyID(bd, textBox1.Text); if (loantb != null) { BClaim claim = new BClaim(); claim = BaseDataLite.FillClaim(Convert.ToInt32(textBox1.Text), bd); NotificationWindow window = new NotificationWindow($"{claim.Id}", claim.SumLoan, claim.Days, $"{claim.SumPaid}", "Оплатить"); DialogResult result = window.ShowDialog(); if (result == DialogResult.Yes) { try { if ((Convert.ToInt32(NotificationWindow.text) + claim.PaidOut) > claim.SumPaid) { MessageBox.Show("Сумма оплаты приведет к переплате по займу.\nВведите меньшую сумму", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { BaseDataLite.SendPayment(claim.Id, Convert.ToInt32(NotificationWindow.text)); MessageBox.Show($"Ваша оплата принята в обработку\nP.s здесь должна быть оплата счета.", "", MessageBoxButtons.OK, MessageBoxIcon.Information); BaseDataLite.AutoCloseClaim(claim.Id); } } catch (Exception) { MessageBox.Show("Ой, что-то пошло не так ;(", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
private void buttonFindClaim_Click(object sender, EventArgs e) { BaseDataLite bd = new BaseDataLite(); BClaim claim = new BClaim(); if (!String.IsNullOrEmpty(textBox1.Text)) { DataTable loantb = bd.GetLoanbyID(bd, textBox1.Text); if (loantb != null) { claim = BaseDataLite.FillClaim(Convert.ToInt32(textBox1.Text), bd); labelClaimSumLoan.Text = $"{claim.SumLoan} руб."; double proc = 1.0; if (claim.SumLoan > 35000) { proc = 2.0; } double sumfine = (double)claim.SumLoan * (proc / 100.0) * (double)claim.Fine; labelClaimSumPaid.Text = $"{claim.SumPaid} руб.\nвключая штраф:{sumfine}руб.({(sumfine / claim.SumLoan) * 100}%)"; labelClaimFineDays.Text = $"{claim.Fine} дня"; labelClaimPiadout.Text = $"{claim.PaidOut} руб."; labelClaimStatus.Text = $"{claim.status}"; labelClaimDays.Text = $"{claim.Days} дней до {claim.LastDate.ToString("d")}"; labelClaimFirstDate.Text = $"{claim.FirstDate.ToString("d")}"; switch (labelClaimStatus.Text.ToLower()) { case "открыто": labelClaimStatus.ForeColor = Color.FromArgb(236, 214, 22); buttonPay.Enabled = false; break; case "принято": labelClaimStatus.ForeColor = Color.FromArgb(44, 218, 65); buttonPay.Enabled = true; break; case "закрыто": labelClaimStatus.ForeColor = Color.FromArgb(140, 140, 140); buttonPay.Enabled = false; break; case "отклонено": labelClaimStatus.ForeColor = Color.FromArgb(180, 37, 23); buttonPay.Enabled = false; break; default: break; } } else { MessageBox.Show("Займ не найден!", "Займ не найден", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { MessageBox.Show("Строка пуста!", "Пустая строка", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
private int CountSumPiad(int sum, int days) { double rate = 1; if (sum > 30000) { rate = 1.5; } return((int)BClaim.SumPiad(sum, rate, days)); }
public static BClaim FillClaim(int id, BaseDataLite bd) { DataTable loantb = bd.GetLoanbyID(bd, $"{id}"); BClaim claim = new BClaim(); claim.Id = id; claim.SumLoan = Convert.ToInt32(loantb.Rows[0][2]); claim.Days = Convert.ToInt32(loantb.Rows[0][3]); claim.Fine = Convert.ToInt32(loantb.Rows[0][11]); claim.CardNumber = Convert.ToString(loantb.Rows[0][7]); claim.type = Convert.ToString(loantb.Rows[0][9]); claim.status = Convert.ToString(loantb.Rows[0][8]); claim.PaidOut = Convert.ToInt32(loantb.Rows[0][12]); claim.SumPaid = Convert.ToInt32(loantb.Rows[0][10]); claim.FirstDate = DateTime.Parse(Convert.ToString(loantb.Rows[0][4])); claim.LastDate = claim.FirstDate.AddDays(claim.Days); return(claim); }
public static void SendEmailNewLoan(string sendEmail, string name, BClaim claim) //послать имейл от клиента пользователя { MailAddress from = new MailAddress("*****@*****.**", "MoneyMota"); MailAddress to = new MailAddress(sendEmail); MailMessage m = new MailMessage(from, to); //m.Attachments.Add(new Attachment(@"C:\gg\PS\EWryYElXsAsIOSA.jpg")); m.Subject = "Информация о вашем займе"; m.Body = $"<h2>Здравствуйте,{name}</h2><p><b>Ваша заявка №{claim.Id}</b></p>" + $"<p>Вы оформили займ на сумму {claim.SumLoan}.В ближайщее время оператор рассмотрит вашу заявку.О принятии или отклонении заявки, вы сможете узнать в соответствующием сообщении.</p>" + "<p>или в приложении,в разделе <<Заявка>> по номеру заявки.</p>" + "<p>Если вы желаете отменить заявку,то это нужно сделать до ее рассмотрения оператором.Для этого нужно позвонить по телефону <b>9(000)111-22-33<b></p>" + "<p><h6>Данное сообщение является учебным.Все названия, телефоны,люди и имейлы выдуманы, и являются совпадениями.</h6></p>"; m.IsBodyHtml = true; SmtpClient smtp = new SmtpClient("smtp.yandex.ru", 25); //smtp.Credentials = new NetworkCredential("----", "------"); smtp.EnableSsl = true; smtp.Send(m); }
public static void SendEmailNewStatus(string sendEmail, string typeNot, string name, BClaim claim) //послать имейл от клиента оператора { //MailAddress from = new MailAddress("*****@*****.**", "MoneyMota"); //MailAddress to = new MailAddress(sendEmail); //MailMessage m = new MailMessage(from, to); ////m.Attachments.Add(new Attachment(@"C:\gg\PS\EWryYElXsAsIOSA.jpg")); //m.Subject = "Изменение статса вашего займа!"; //m.Body = ""; //if (typeNot == "принято" && claim.type == "карта") //{ // m.Body = $"<h2>Здравствуйте,{name}</h2><p><b>Ваша заявка №{claim.Id}</b> была принята.</p>" + // $"<p>В скором времени на вашу карту поступят средства на сумму {claim.SumLoan}.Дополнительную информацию по займу вы можете получить в приложении,</ p> <p>или по телефону 9(000)111-22-33</p> и email: [email protected]</p>" + // $"<p>Первый день оплаты займа {claim.FirstDate.ToString("d")}.Если вы будет пропускать оплату, то вам будет начислен штраф.</p>" + // $"<p>К выплате: {claim.SumPaid}</p> <p>Оплата в день: {claim.SumPaid / claim.Days}</p>" + // "<p><h6>Данное сообщение является учебным.Все названия, телефоны,люди и имейлы выдуманы, и являются совпадениями.</h6></p>"; //} //else if (typeNot == "принято" && claim.type == "наличка") //{ // m.Body = $"<h2>Здравствуйте,{name}</h2><p><b>Ваша заявка №{claim.Id}</b> была принята.</p>" + // $"<p>Вы выбрали получение наличных средств, вы можете получить выплату {claim.SumLoan}, по адресу <b>г.Барнаул ул.Уличная д.96. с 9:00 до 21:00, необходим паспорт!</b>.Дополнительную информацию по займу вы можете получить в приложении,</ p ><p>или по телефону 9(000)111-22-33</p> и email: [email protected]</p>" + // $"<p>Первый день оплаты займа {claim.FirstDate.ToString("d")}.Если вы будет пропускать оплату, то вам будет начислен штраф.</p>" + // $"<p>К выплате: {claim.SumPaid}</p> <p>Оплата в день: {claim.SumPaid / claim.Days}</p>" + // "<p><h6>Данное сообщение является учебным.Все названия, телефоны,люди и имейлы выдуманы, и являются совпадениями.</h6></p>"; //} //else if (typeNot == "закрыто") //{ // m.Body = $"<h2>Здравствуйте,{name}</h2><p><b>Ваша заявка №{claim.Id}</b> была закрыта.</p>" + // "<p>Это скорее всего означет, что вы выплатили свой займ.<p>" + // "<p><h6>Данное сообщение является учебным.Все названия, телефоны,люди и имейлы выдуманы, и являются совпадениями.</h6></p>"; //} //else //{ // m.Body = $"<h2>Здравствуйте,{name}</h2><p><b>Ваша заявка №{claim.Id}</b> была отклонена.</p>" + // "<p>Дополнительную информацию о причинах вы можете получить по телефону 9(000)111-22-33</p> или email: [email protected]" + // "<p><h6>Данное сообщение является учебным.Все названия, телефоны,люди и имейлы выдуманы, и являются совпадениями.</h6></p>"; //} //m.IsBodyHtml = true; //m.BodyEncoding = System.Text.Encoding.UTF8; //SmtpClient smtp = new SmtpClient("smtp.yandex.ru", 25); //smtp.Credentials = new NetworkCredential("*****@*****.**", "qwrnvtxewxwdckco"); //smtp.EnableSsl = true; //smtp.Send(m); }
private void buttonOpenClaim_Click(object sender, EventArgs e) { if (!String.IsNullOrEmpty(textBoxIDClaim.Text)) { DataTable loantb = bd.GetLoanbyID(bd, $"{textBoxIDClaim.Text}"); if (loantb != null) { try { DataTable usertb = bd.GetUserbyID(bd, $"{Convert.ToInt32(loantb.Rows[0][5])}"); groupBox1.Enabled = true; #region claimdata //GetDataFromBD claim = BaseDataLite.FillClaim(Convert.ToInt32(textBoxIDClaim.Text), bd); //Write data to claim interface labelLoanID.Text = $"№{claim.Id}"; lableLoanSum.Text = $"{claim.SumLoan}"; labelDays.Text = $"{claim.Days}"; lableFineDays.Text = $"{claim.Fine}"; labelCardNumber.Text = $"{claim.CardNumber}"; labelType.Text = claim.type.ToLower();; labelStatus.Text = claim.status.ToLower(); double proc = 1.0; if (claim.SumLoan > 35000) { proc = 2.0; } double sumfine = (double)claim.SumLoan * (proc / 100.0) * (double)claim.Fine; labelPaidOUT.Text = $"{claim.PaidOut}/{claim.SumPaid} \nвключая штраф:{sumfine}руб.({(sumfine/claim.SumLoan)*100}%)"; #endregion #region userdata //GetDataFromBD user.Id = Convert.ToInt32(loantb.Rows[0][5]); user.Name = Convert.ToString(usertb.Rows[0][1]); user.SecoundName = Convert.ToString(usertb.Rows[0][2]); user.MiddleName = Convert.ToString(usertb.Rows[0][3]); user.Passport = Convert.ToString(usertb.Rows[0][7]); user.BirthDay = Convert.ToDateTime(usertb.Rows[0][4]); user.Phone = Convert.ToString(usertb.Rows[0][5]); user.Email = Convert.ToString(usertb.Rows[0][6]); //Write data to claim interface labelClientId.Text = $"{user.Id}"; labelName.Text = $"{user.SecoundName} {user.Name} {user.MiddleName}"; labelPass.Text = user.Passport; labelBirthday.Text = user.BirthDay.ToString("d"); labelPhone.Text = user.Phone.ToString(); labelEmail.Text = user.Email; #endregion } catch (Exception) { groupBox1.Enabled = false; MessageBox.Show("Ой, что-то пошло не так ;(", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } if (Convert.ToInt32(lableFineDays.Text) > 0) { lableFineDays.ForeColor = Color.FromArgb(180, 37, 23); label12.ForeColor = Color.FromArgb(180, 37, 23); } switch (labelStatus.Text.ToLower()) { case "открыто": labelStatus.ForeColor = Color.FromArgb(236, 214, 22); buttonSendDecision.Enabled = true; buttonAddFine.Enabled = false; buttonCloseClaim.Enabled = false; break; case "принято": labelStatus.ForeColor = Color.FromArgb(44, 218, 65); buttonSendDecision.Enabled = false; buttonAddFine.Enabled = true; buttonCloseClaim.Enabled = true; break; case "закрыто": labelStatus.ForeColor = Color.FromArgb(140, 140, 140); buttonSendDecision.Enabled = false; buttonAddFine.Enabled = false; buttonCloseClaim.Enabled = false; break; case "отклонено": labelStatus.ForeColor = Color.FromArgb(180, 37, 23); buttonSendDecision.Enabled = false; buttonAddFine.Enabled = true; buttonCloseClaim.Enabled = false; break; default: break; } } else { MessageBox.Show("Займ не найден!", "Займ не найден", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { MessageBox.Show("Строка пуста!", "Пустая строка", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } // Отрисовка заявки
private void CreateClaim() // Создание заявки и отправка { BClaim claim = new BClaim(); User user = new User(); #region Claim while (true) { claim.Id = BClaim.GenerateID(6); if (!BaseDataLite.CheckLoanID(claim.Id)) { break; } } claim.SumLoan = Convert.ToInt32(textBoxSumLoan.Text); claim.Days = Convert.ToInt32(textBoxDays.Text); claim.FirstDate = DateTime.Parse(maskedTextBoxFirstDay.Text); if (radioButtonCard.Checked) { claim.CardNumber = maskedCardNumber.Text; } else { claim.CardNumber = "-"; } claim.SumPaid = Convert.ToInt32(labelPaidSum.Text); claim.LastDate = claim.FirstDate.AddDays(claim.Days); claim.Fine = 0; claim.PaidOut = 0; if (radioButtonCard.Checked) { claim.type = "карта"; } else { claim.type = "наличка"; } claim.status = "открыто"; #endregion #region User if (!BaseDataLite.CheckUserExist(textBoxUserPassport.Text)) { while (true) { user.Id = BClaim.GenerateID(4); if (!BaseDataLite.CheckUsersID(user.Id)) { break; } } user.Name = textBoxUserName.Text; user.SecoundName = textBoxUserSecName.Text; user.MiddleName = textBoxUserMidName.Text; user.BirthDay = DateTime.Parse(maskedUserBirthDay.Text); user.Phone = maskedUserPhone.Text; user.Email = maskedEmail.Text; user.Passport = textBoxUserPassport.Text; LoadingScreen(true); BaseDataLite.CreateNewUser(user.Id, user.Name, user.SecoundName, user.MiddleName, user.BirthDay, user.Phone, user.Email, user.Passport); LoadingScreen(false); } else { user.Id = BaseDataLite.GetUserID(textBoxUserPassport.Text); BaseDataLite.SendUserDataUpdate(user.Id, maskedEmail.Text, maskedUserPhone.Text); } #endregion #region Docs int docid; while (true) { docid = BClaim.GenerateID(5); if (!BaseDataLite.CheckDocID(claim.Id)) { break; } } #endregion if (!BaseDataLite.CheckSeveralLoan(user.Id)) { try { LoadingScreen(true); BaseDataLite.SendClaim(claim.Id, claim.SumPaid / claim.Days, claim.SumLoan, claim.Days, claim.FirstDate, user.Id, docid, claim.CardNumber, claim.SumPaid, claim.Fine, claim.PaidOut, claim.type, claim.status); BaseDataLite.SendFile(FileAddres, docid); GeneralMessages.SendEmailNewLoan(user.Email, $"{user.Name} {user.SecoundName} {user.MiddleName} ", claim); LoadingScreen(false); NotificationWindow f = new NotificationWindow($"{claim.Id}", claim.SumLoan, claim.Days, $"{claim.SumPaid}"); DialogResult result = f.ShowDialog(); if (result == DialogResult.OK) { if (panelCreateClaim.Visible == true) { panelMain.Visible = false; panelCheckClaim.Visible = true; panelCreateClaim.Visible = false; panelAbout.Visible = false; } else { panelMain.Visible = false; panelCheckClaim.Visible = true; panelAbout.Visible = false; } } } catch (Exception) { LoadingScreen(false); MessageBox.Show("Ой, что-то пошло не так ;(", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show($"Похоже что у вас уже есть принятые или новые заявки.\nЗавершите предыдущий займ, для того чтобы взять новый.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }