Example #1
0
 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)
     {
     }
 }
Example #2
0
        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);
                    }
                }
            }
        }
Example #3
0
        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);
            }
        }
Example #4
0
        private int CountSumPiad(int sum, int days)
        {
            double rate = 1;

            if (sum > 30000)
            {
                rate = 1.5;
            }
            return((int)BClaim.SumPiad(sum, rate, days));
        }
Example #5
0
        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);
        }
Example #6
0
        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);
        }
Example #7
0
 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);
 }
Example #8
0
        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);
            }
        } // Отрисовка заявки
Example #9
0
        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);
            }
        }