Esempio n. 1
0
        //-----

        #region Founction
        //-----
        #region ClientFinancialAccount
        private void ClientFinancialAccount(string clientID)
        {
            Models.DataBaseContext dataBaseContext = null;
            try
            {
                int payment;
                dataBaseContext =
                    new DataBaseContext();

                Models.PermanentClientStatus permanentClientStatus =
                    dataBaseContext.PermanentClientStatuses
                    .Where(current => string.Compare(current.Client_ID, clientID) == 0)
                    .FirstOrDefault();
                if (permanentClientStatus == null)
                {
                    return;
                }
                else
                {
                    clientNameTextBox.Text = permanentClientStatus.Client_Name;

                    if (string.Compare(amountTextBox.Text, "مبلغ") == 0)
                    {
                        amountTextBox.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
                        amountTextBox.TextAlign   = System.Drawing.ContentAlignment.MiddleRight;
                        payment            = int.Parse(permanentClientStatus.Remaining_Amount.Replace("تومان", string.Empty).Trim().Replace(",", string.Empty).Trim());
                        amountTextBox.Text = $"{payment:#,0} تومان";
                    }
                    else
                    {
                        payment            = int.Parse(permanentClientStatus.Remaining_Amount);
                        payment            = 0;
                        amountTextBox.Text = $"تومان {payment}";
                    }

                    switch (permanentClientStatus.AccountStatus)
                    {
                    case "بدهکار":
                        debtorStatusRadioButton.Checked     = true;
                        settlementStatusRadioButton.Checked = false;
                        creditorStatusRadioButton.Checked   = false;
                        paymentAmountTextBox.Enabled        = true;
                        paymentAmountButton.Enabled         = true;
                        break;

                    case "تسویه":
                        debtorStatusRadioButton.Checked     = false;
                        settlementStatusRadioButton.Checked = true;
                        creditorStatusRadioButton.Checked   = false;
                        paymentAmountTextBox.Enabled        = false;
                        paymentAmountButton.Enabled         = false;
                        break;

                    case "طلبکار":
                        debtorStatusRadioButton.Checked     = false;
                        settlementStatusRadioButton.Checked = false;
                        creditorStatusRadioButton.Checked   = true;
                        paymentAmountTextBox.Enabled        = false;
                        paymentAmountButton.Enabled         = false;
                        break;

                    default:
                        break;
                    }
                }
            }
            catch (System.Exception ex)
            {
                Infrastructure.Utility.ExceptionShow(ex);
            }
            finally
            {
                if (dataBaseContext != null)
                {
                    dataBaseContext.Dispose();
                    dataBaseContext = null;
                }
            }
        }
Esempio n. 2
0
        //-----
        #endregion /PaymentAmountTextBox

        #region PaymentAmountButton_Click
        private void PaymentAmountButton_Click(object sender, System.EventArgs e)
        {
            SearchClientID = SearchClientID.Replace("-", string.Empty).Trim();
            int    resultRemaining = Remaining + PaymentAmount_Int;
            string orderDate, dateSettlement;

            dateSettlement = $"{Infrastructure.Utility.ShowTime()} - {Infrastructure.Utility.PersianCalendar(System.DateTime.Now)}";
            if (resultRemaining < 0)
            {
                AccountStatus = "بدهکار";
                debtorStatusRadioButton.Checked     = true;
                settlementStatusRadioButton.Checked = false;
                creditorStatusRadioButton.Checked   = false;
            }
            else if (resultRemaining == 0)
            {
                AccountStatus = "تسویه";
                debtorStatusRadioButton.Checked     = false;
                settlementStatusRadioButton.Checked = true;
                creditorStatusRadioButton.Checked   = false;
            }
            else if (resultRemaining > 0)
            {
                AccountStatus = "طلبکار";
                debtorStatusRadioButton.Checked     = false;
                settlementStatusRadioButton.Checked = false;
                creditorStatusRadioButton.Checked   = true;
            }

            Models.DataBaseContext dataBaseContext = null;

            try
            {
                dataBaseContext =
                    new DataBaseContext();

                Models.PermanentClientStatus permanentClientStatus =
                    dataBaseContext.PermanentClientStatuses
                    .Where(current => string.Compare(current.Client_ID, SearchClientID) == 0)
                    .FirstOrDefault();

                if (permanentClientStatus != null)                //-----ثبت تسویه مالی مشتری
                {
                    string paymentAmount_String = permanentClientStatus.Payment_Amount;
                    int    paymentAmount_Int    = int.Parse(paymentAmount_String.Replace("تومان", string.Empty).Trim().Replace(",", string.Empty).Trim());

                    PaymentAmount_Int += paymentAmount_Int;
                    orderDate          = permanentClientStatus.Order_Date;

                    permanentClientStatus.Payment_Amount   = $"{PaymentAmount_Int:#,0} تومان";
                    permanentClientStatus.Remaining_Amount = $"{resultRemaining:#,0} تومان";
                    permanentClientStatus.Payment_Type     = Payment_Type;
                    permanentClientStatus.AccountStatus    = AccountStatus;

                    permanentClientStatus.Client_ID       = SearchClientID;
                    permanentClientStatus.Client_Name     = clientNameTextBox.Text;
                    permanentClientStatus.Order_Date      = orderDate;
                    permanentClientStatus.Date_Settlement = dateSettlement;

                    dataBaseContext.SaveChanges();
                }

                Models.Financial financial =
                    dataBaseContext.Financials
                    .OrderBy(current => current.Order_Date)
                    .FirstOrDefault();

                string date = Infrastructure.Utility.PersianCalendar(System.DateTime.Now);
                orderDate = $"00:00:00 - 0000/00/00";
                financial =
                    new Models.Financial()               //-----بعد از صورت تعیین وضعیت تسویه حساب در بخش مالی ثبت میگردد!
                {
                    Client_ID        = SearchClientID,
                    Total_Price      = "0",
                    Payment_Amount   = $"{PaymentAmount_Int:#,0} تومان",
                    Remaining_Amount = $"{resultRemaining:#,0} تومان",
                    Payment_Type     = Payment_Type,
                    Order_Date       = orderDate,
                    Register_Date    = date,
                    Date_Settlement  = dateSettlement
                };

                dataBaseContext.Financials.Add(financial);
                dataBaseContext.SaveChanges();

                #region EventLog
                EventLog_Username   = Program.AuthenticatedUser.Username;
                EventLog_FullName   = $"{Program.AuthenticatedUser.First_Name} {Program.AuthenticatedUser.Last_Name}";
                EventLog_EventDate  = $"{Infrastructure.Utility.PersianCalendar(System.DateTime.Now)}";
                EventLog_EventTime  = $"{Infrastructure.Utility.ShowTime()}";
                EventLog_EventTitle = $"پرداخت بدهی توسط {clientNameTextBox.Text} به مبلغ {PaymentAmount_Int:#,0} تومان. وضعیت حساب {AccountStatus} ";

                Infrastructure.Utility.EventLog
                    (username: EventLog_Username,
                    fullName: EventLog_FullName,
                    eventDate: EventLog_EventDate,
                    eventTime: EventLog_EventTime,
                    eventTitle: EventLog_EventTitle);
                #endregion /EventLog

                if (resultRemaining < 0)
                {
                    Mbb.Windows.Forms.MessageBox.Show
                        (text: $"{clientNameTextBox.Text} مبلغ {PaymentAmount_Int:#,0} تومان پرداخت و مبلغ \n {resultRemaining:#,0} تومان بدهکار میباشد.",
                        caption: $"بدهکار",
                        icon: Mbb.Windows.Forms.MessageBoxIcon.Information,
                        button: Mbb.Windows.Forms.MessageBoxButtons.Ok);
                    ClientFinancialAccount(SearchClientID);
                    return;
                }
                else if (resultRemaining == 0)
                {
                    Mbb.Windows.Forms.MessageBox.Show
                        (text: $"{clientNameTextBox.Text} مبلغ {PaymentAmount_Int:#,0} تومان پرداخت و حساب تسویه گردید.",
                        caption: "تسویه",
                        icon: Mbb.Windows.Forms.MessageBoxIcon.Success,
                        button: Mbb.Windows.Forms.MessageBoxButtons.Ok);
                    ClientFinancialAccount(SearchClientID);
                    return;
                }
                else if (resultRemaining > 0)
                {
                    Mbb.Windows.Forms.MessageBox.Show
                        (text: $"{clientNameTextBox.Text} مبلغ {PaymentAmount_Int:#,0} تومان پرداخت و مبلغ \n {resultRemaining:#,0} تومان طلبکار میباشد.",
                        caption: "طلبکار",
                        icon: Mbb.Windows.Forms.MessageBoxIcon.Alert,
                        button: Mbb.Windows.Forms.MessageBoxButtons.Ok);
                    ClientFinancialAccount(SearchClientID);
                    return;
                }
            }
            catch (System.Exception ex1)
            {
                Infrastructure.Utility.ExceptionShow(ex1);
            }
            finally
            {
                if (dataBaseContext != null)
                {
                    dataBaseContext.Dispose();
                    dataBaseContext = null;
                }
            }
        }