private void button7_Click(object sender, EventArgs e) { try { Decimal specialDiscount = Convert.ToDecimal(textBoxSpecialDiscount.Text); if (specialDiscount > TotalAmount || ItemList.Count == 0) { MessageBox.Show("Special discount is too high or the booking contains no items!"); } else { itemsChanged = true; string startDateStrShort = dbUtil.FormatDate(this.StartDatePicker.Value); string endDateStrShort = dbUtil.FormatDate(this.ReturnDatePicker.Value); object[] parameters = new object[8]; parameters[0] = "Special discount"; parameters[1] = 0.00; parameters[2] = textBoxSpecialDiscount.Text;; parameters[3] = startDateStrShort; parameters[4] = endDateStrShort; parameters[5] = null; parameters[6] = null; parameters[7] = textBoxDiscountNote.Text; item = new BookingItems(); item.BookingNumber = booking.BookingNumber; item.ItemName = "Special discount"; item.StartDate = dbUtil.FormatDate(this.StartDatePicker.Value); item.ReturnDate = dbUtil.FormatDate(this.ReturnDatePicker.Value); item.ItemPrice = 0; item.Discount = Convert.ToDecimal(textBoxSpecialDiscount.Text); item.ItemProvider = null; item.ArrivalTime = null; item.DepartueTime = null; item.BookingNote = this.textBoxDiscountNote.Text; item.ItemType = "Special discount"; item.VersionCode = 1; ItemList.Add(item); dataGridView1.Rows.Add(parameters); decimal discountedPrice = item.ItemPrice - item.Discount; TotalAmount += discountedPrice; this.textBoxTotalPrice.Text = TotalAmount.ToString(); TotalOutstanding += discountedPrice; this.textBoxOutstanding.Text = TotalOutstanding.ToString(); } } catch (System.FormatException) { MessageBox.Show("Please check the special discount field! It must be a decimal value!"); } }
public int InsertItem(BookingItems item) { try { conn.Open(); trans = conn.BeginTransaction(); SqlCommand cmd = new SqlCommand("AddBookingItem", conn); cmd.Transaction = trans; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter("@BookingNumber", item.BookingNumber)); cmd.Parameters.Add(new SqlParameter("@ProductNumber", item.ItemNumber)); cmd.Parameters.Add(new SqlParameter("@ItemName", item.ItemName)); cmd.Parameters.Add(new SqlParameter("@StartDate", item.StartDate)); cmd.Parameters.Add(new SqlParameter("@ReturnDate", item.ReturnDate)); //cmd.Parameters.Add(new SqlParameter("@Qty", item.Qty)); cmd.Parameters.Add(new SqlParameter("@ItemPrice", item.ItemPrice)); cmd.Parameters.Add(new SqlParameter("@Discount", item.Discount)); cmd.Parameters.Add(new SqlParameter("@ArrivalTime", item.ArrivalTime)); cmd.Parameters.Add(new SqlParameter("@DepartureTime", item.DepartueTime)); cmd.Parameters.Add(new SqlParameter("@ItemProvider", item.ItemProvider)); cmd.Parameters.Add(new SqlParameter("@BookingNote", item.BookingNote)); cmd.Parameters.Add(new SqlParameter("@ItemType", item.ItemType)); cmd.Parameters.Add(new SqlParameter("@VersionCode", item.VersionCode)); int result = cmd.ExecuteNonQuery(); trans.Commit(); //conn.Close(); return(result); } catch (System.Exception) { trans.Rollback(); return(13); } finally { conn.Close(); } }
private void button1_Click(object sender, EventArgs e) { //Broker broker = new Broker(); string newDatabaseConnStr = ConfigurationManager.AppSettings["NewConnStr"].ToString(); string oldDatabaseConnStr = ConfigurationManager.AppSettings["ConnStr"].ToString(); conn = new SqlConnection(newDatabaseConnStr); DataSet ds_OldUSers = new DataSet(); SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Contacts", oldDatabaseConnStr); SqlCommandBuilder builder = new SqlCommandBuilder(adapter); adapter.Fill(ds_OldUSers, "Contacts"); foreach (DataRow contact_dr in ds_OldUSers.Tables[0].Rows) { listBox1.Items.Add("------------------------"); //1. insert contact Contact contact = new Contact(); int newContactNumber = 0; int oldContactNumber = Convert.ToInt32(contact_dr["ContactNumber"].ToString()); contact.FirstName = contact_dr["FirstName"].ToString(); contact.LastName = contact_dr["LastName"].ToString(); contact.DateOfBirth = contact_dr["DateOfBirth"].ToString(); contact.PassportNumber = contact_dr["PassportNum"].ToString(); contact.Address = contact_dr["ContactAddress"].ToString(); contact.City = contact_dr["City"].ToString(); contact.PoBox = contact_dr["PoBox"].ToString(); contact.Phone = contact_dr["Phone"].ToString(); contact.MobilePhone = contact_dr["MobilePhone"].ToString(); contact.Email = contact_dr["Email"].ToString(); contact.MotherName = contact_dr["MotherName"].ToString(); contact.FatherName = contact_dr["FatherName"].ToString(); contact.MotherPhone = contact_dr["MotherPhone"].ToString(); contact.FatherPhone = contact_dr["FatherPhone"].ToString(); contact.ContactType = contact_dr["ContactType"].ToString(); contact.GroupLeader = contact_dr["GroupLeader"].ToString(); contact.SchoolName = contact_dr["SchoolName"].ToString(); contact.SchoolAddress = contact_dr["SchoolAddress"].ToString(); contact.TeacherPhone = contact_dr["TeacherPhone"].ToString(); contact.AgencyName = contact_dr["AgencyName"].ToString(); contact.EBClubMember = contact_dr["EBClubMember"].ToString(); contact.PromoCodeMember = contact_dr["PromoCodeMember"].ToString(); contact.MarketingSource = contact_dr["MarketingMaterial"].ToString(); contact.VersionCode = 1; int result = this.InsertContact(contact); if (result != 13) { newContactNumber = this.GetLastContactRecord(); listBox1.Items.Add("CONTACT ADDED!!"); } else { listBox1.Items.Add("INSERT CONTACT FAILED!!"); } //3. check for bookings DataSet ds_oldBookings = broker.GetBookingsByContact(oldContactNumber); //-----REPEAT FOR EVERY BOOKING----- if (ds_oldBookings.Tables[0].Rows.Count > 0) { //4. get booking foreach (DataRow bookingRow in ds_oldBookings.Tables[0].Rows) { //5. insert booking, using NEW user code Booking booking = new Booking(); int oldBookingNumber = Convert.ToInt32(bookingRow["BookingNumber"]); booking.ContactNumber = newContactNumber; //DateTime DateOfBookingVal = Convert.ToDateTime(bookingRow["DateOfBooking"]); booking.DateOfBooking = bookingRow["DateOfBooking"].ToString(); booking.TotalPrice = Convert.ToDecimal(bookingRow["TotalPrice"]); booking.RequiresVisa = bookingRow["RequiresVisa"].ToString(); booking.VisaAppointmentScheduled = bookingRow["VisaAppointmentScheduled"].ToString(); booking.DateOfAppointment = bookingRow["DateOfAppointment"].ToString(); booking.TimeOfAppointment = bookingRow["TimeOfAppointment"].ToString(); booking.VisaObtained = bookingRow["VisaObtained"].ToString(); booking.VisaRejected = bookingRow["VisaRejected"].ToString(); booking.IsBooked = bookingRow["Isbooked"].ToString(); booking.IsCancelled = bookingRow["IsCancelled"].ToString(); booking.ReasonForCancellation = bookingRow["ReasonForCancellation"].ToString(); booking.BookingCode = bookingRow["BookingCode"].ToString(); //DateTime PaymentDeadlineVal = Convert.ToDateTime(bookingRow["PaymentDeadline"]); booking.PaymentDeadline = bookingRow["PaymentDeadline"].ToString(); booking.OutstandingBalance = Convert.ToDecimal(bookingRow["OutstandingBalance"]); booking.GWFnumber = bookingRow["GWFnumber"].ToString(); booking.VersionCode = 1; //6. get new booking number int result2 = this.InsertBooking(booking); if (result2 != 13) { listBox1.Items.Add("BOOKING ADDED!!"); } else { listBox1.Items.Add("INSERT BOOKING FAILED!!"); } int newBookingNumber = this.GetLastBookingRecord(); //7. get items DataSet ds_OldItems = broker.GetBookingItemsByBookingNumber(oldBookingNumber); //-----ADDING ITEMS----- if (ds_OldItems.Tables[0].Rows.Count > 0) { foreach (DataRow itemRow in ds_OldItems.Tables[0].Rows) { //8. insert items using NEW booking number BookingItems item = new BookingItems(); item.BookingNumber = newBookingNumber; //sada ovde treba izvaditi sifru proizvoda item.ItemName = itemRow["ItemName"].ToString(); item.ItemNumber = 0; //item.ItemNumber = this.ReturnNewProductCode(item.ItemName); item.StartDate = itemRow["StartDate"].ToString(); item.ReturnDate = itemRow["ReturnDate"].ToString(); item.Qty = Convert.ToInt32(itemRow["Qty"]); item.ItemPrice = Convert.ToDecimal(itemRow["ItemPrice"]); item.Discount = Convert.ToDecimal(itemRow["Discount"]); item.ArrivalTime = itemRow["ArrivalTime"].ToString(); item.DepartueTime = itemRow["DepartureTime"].ToString(); item.ItemProvider = itemRow["ItemProvider"].ToString(); item.BookingNote = itemRow["Note"].ToString(); item.ItemType = itemRow["ItemType"].ToString(); item.VersionCode = 1; int itemResult = this.InsertItem(item); if (itemResult != 13) { this.listBox1.Items.Add("ITEM ADDED TO BOOKING!"); } else { this.listBox1.Items.Add("ITEM INSERT FAILED!"); } } } //9. get rates //10. insert rates using NEW booking number //-----ADDING RATES----- DataSet ds_rates = broker.GetPaymentRatesByBookingNumber(oldBookingNumber); if (ds_rates.Tables[0].Rows.Count > 0) { foreach (DataRow rateRow in ds_rates.Tables[0].Rows) { PaymentRate rate = new PaymentRate(); rate.BookingNumber = newBookingNumber; //rate.RateNumber = Convert.ToInt32(rateRow["RateNumber"]); rate.date = rateRow["RateDate"].ToString(); rate.AmountPaid = Convert.ToDecimal(rateRow["AmountPaid"]); rate.Currency = rateRow["Currency"].ToString(); rate.PaymentMethod = rateRow["PaymentMethod"].ToString(); rate.ConversionValue = Convert.ToDecimal(rateRow["ConversionValue"]); rate.RateNote = rateRow["RateNote"].ToString(); rate.OriginalValue = Convert.ToDecimal(rateRow["OriginalValue"]); rate.OriginalCurrency = "CURRENCY"; int rateResult = this.InsertPaymentRate(rate); if (rateResult != 13) { listBox1.Items.Add("RATE ADDED!!"); } else { listBox1.Items.Add("RATE INSERT FAILED!"); } } } } } } }
//----------------------------------------------------------------------------------- //Load Booking data private void LoadBookingData() { this.panel1.Enabled = true; this.panel3.Enabled = true; this.panel5.Enabled = true; this.dataGridView1.Rows.Clear(); this.dataGridView2.Rows.Clear(); string code = bcode; booking = new Booking(); ds = broker.GetBookingByCode(code); ItemList.Clear(); foreach (DataRow row in ds.Tables[0].Rows) { booking.BookingNumber = Convert.ToInt32(row["BookingNumber"]); booking.ContactNumber = Convert.ToInt32(row["ContactNumber"]); DateOfBookingVal = Convert.ToDateTime(row["DateOfBooking"]); booking.DateOfBooking = DateOfBookingVal.ToString("dd/MM/yyyy"); booking.TotalPrice = Convert.ToDecimal(row["TotalPrice"]); booking.RequiresVisa = row["RequiresVisa"].ToString(); booking.VisaAppointmentScheduled = row["VisaAppointmentScheduled"].ToString(); booking.DateOfAppointment = row["DateOfAppointment"].ToString(); booking.TimeOfAppointment = row["TimeOfAppointment"].ToString(); booking.VisaObtained = row["VisaObtained"].ToString(); booking.VisaRejected = row["VisaRejected"].ToString(); booking.IsBooked = row["Isbooked"].ToString(); booking.IsCancelled = row["IsCancelled"].ToString(); booking.ReasonForCancellation = row["ReasonForCancellation"].ToString(); booking.BookingCode = code; PaymentDeadlineVal = Convert.ToDateTime(row["PaymentDeadline"]); booking.PaymentDeadline = PaymentDeadlineVal.ToString("dd/MM/yyyy"); booking.OutstandingBalance = Convert.ToDecimal(row["OutstandingBalance"]); booking.GWFnumber = row["GWFnumber"].ToString(); booking.VisaDocumentsObtained = row["VisaDocsObtained"].ToString(); booking.VersionCode = Convert.ToInt32(row["VersionCode"]); booking.BookingType = row["BookingStringA"].ToString(); booking.BusNeeded = row["BookingStringB"].ToString(); CurrentBookingNumber = booking.BookingNumber; CurrentBookingCode = booking.BookingCode; BookingVersionCode = booking.VersionCode; } TotalAmount = booking.TotalPrice; ds = broker.GetBookingItemsByBookingNumber(booking.BookingNumber); foreach (DataRow row in ds.Tables[0].Rows) { item = new BookingItems(); item.BookingNumber = booking.BookingNumber; item.ItemNumber = Convert.ToInt32(row["ItemNumber"]); item.ItemName = row["ItemName"].ToString(); item.StartDate = dbUtil.FormatDate(Convert.ToDateTime(row["StartDate"])); item.ReturnDate = dbUtil.FormatDate(Convert.ToDateTime(row["ReturnDate"])); item.ItemPrice = Convert.ToDecimal(row["ItemPrice"]); item.Discount = Convert.ToDecimal(row["Discount"]); item.ArrivalTime = row["ArrivalTime"].ToString(); item.DepartueTime = row["DepartureTime"].ToString(); item.ItemProvider = row["ItemProvider"].ToString(); item.BookingNote = row["Note"].ToString(); item.ItemType = row["ItemType"].ToString(); ItemList.Add(item); itemCounter++; } //loading booking rates ds = broker.GetPaymentRatesByBookingNumber(booking.BookingNumber); foreach (DataRow row in ds.Tables[0].Rows) { rate = new PaymentRate(); rate.BookingNumber = booking.BookingNumber; rate.RateNumber = Convert.ToInt32(row["RateNumber"]); rate.date = dbUtil.FormatDate(Convert.ToDateTime(row["RateDate"])); rate.AmountPaid = Convert.ToDecimal(row["AmountPaid"]); rate.Currency = row["Currency"].ToString(); rate.PaymentMethod = row["PaymentMethod"].ToString(); rate.ConversionValue = Convert.ToDecimal(row["ConversionValue"]); rate.RateNote = row["RateNote"].ToString(); rate.OriginalValue = Convert.ToDecimal(row["OriginalValue"]); PaymentRates.Add(rate); rateSynchronizerList.Add(rate); rateCounter++; } textBox1.Text = code; textBoxBookingDate.Text = booking.DateOfBooking; textBoxTotalPrice.Text = booking.TotalPrice.ToString(); textBoxOutstanding.Text = booking.OutstandingBalance.ToString(); textBoxPaymentDeadline.Text = booking.PaymentDeadline; comboBoxBookingType.Text = booking.BookingType; TotalAmount = booking.TotalPrice; TotalOutstanding = booking.OutstandingBalance; textBoxGwf.Text = booking.GWFnumber; if (broker.ReturnVisaDocStatus(booking.ContactNumber) == "yes") { this.checkBoxVisaDocsSubmitted.Checked = true; } if (booking.IsBooked == "yes") { checkBoxBooked.Checked = true; } else { checkBoxBooked.Checked = false; } if (booking.IsCancelled == "yes") { checkBoxCancel.Checked = true; textBoxCancellationReason.Text = booking.ReasonForCancellation; } else { checkBoxCancel.Checked = false; textBoxCancellationReason.Clear(); } if (booking.RequiresVisa == "yes") { VisaCheckBox.Checked = true; } else { VisaCheckBox.Checked = false; } if (booking.VisaAppointmentScheduled == "yes") { VisaApointmentScheduledCheckBox.Checked = true; VisaTimeTextBox.Text = booking.TimeOfAppointment; VisaDatePicker.Value = Convert.ToDateTime(booking.DateOfAppointment); } else { VisaApointmentScheduledCheckBox.Checked = false; VisaTimeTextBox.Clear(); } if (booking.VisaDocumentsObtained == "yes") { checkBoxVisaDocsSubmitted.Checked = true; } else { checkBoxVisaDocsSubmitted.Checked = false; } if (booking.VisaObtained == "yes") { checkBoxVisaObtained.Checked = true; } else { checkBoxVisaObtained.Checked = false; } if (booking.VisaRejected == "yes") { checkBoxVisaReject.Checked = true; } else { checkBoxVisaReject.Checked = false; } if (booking.BookingType.Equals("Kopaonik")) { cbBusNeeded.Visible = true; cbBusNeeded.Enabled = true; if (booking.BusNeeded.Equals("Yes")) { cbBusNeeded.Checked = true; } } if (ItemList.Count > 0) { foreach (BookingItems item in ItemList) { object[] parameters = new object[8]; parameters[0] = item.ItemName; parameters[1] = item.ItemPrice; parameters[2] = item.Discount; if (item.StartDate.Equals(string.Empty) || item.StartDate == null) { parameters[3] = null; parameters[5] = null; } else { parameters[3] = item.StartDate; parameters[5] = item.ReturnDate; } parameters[4] = item.DepartueTime; parameters[6] = item.ArrivalTime; parameters[7] = item.BookingNote; dataGridView1.Rows.Add(parameters); } } if (PaymentRates.Count > 0) { foreach (PaymentRate rate in PaymentRates) { object[] parameters = new object[7]; parameters[0] = rate.AmountPaid; parameters[1] = rate.Currency; parameters[2] = rate.OriginalValue; parameters[3] = rate.PaymentMethod; parameters[4] = rate.ConversionValue; parameters[5] = dbUtil.ChangeDateToSerbianFormat(rate.date); parameters[6] = rate.RateNote; dataGridView2.Rows.Add(parameters); } } //show contract data contract = broker.GetContractByBookingNumber(booking.BookingNumber); if (contract != null) { tbContractNumber.Text = contract.ContractNumber; tbReceiptNumber.Text = contract.ReceiptNumber.ToString(); dtpContractDate.Value = Convert.ToDateTime(contract.ContractDate); if (!contract.ReceiptIssueDate.Equals(String.Empty)) { dtpReceiptIssueDate.Value = Convert.ToDateTime(contract.ReceiptIssueDate); dtpReceiptIssueDate.Format = DateTimePickerFormat.Short; } else { dtpReceiptIssueDate.Format = DateTimePickerFormat.Custom; dtpReceiptIssueDate.CustomFormat = " "; } btnDeleteContract.Enabled = true; } else { btnDeleteContract.Enabled = false; } this.contractInfoChnaged = false; //RUNNING CONSISTENCY CHECKS bool BookingHasErrors = CheckIfbookingHasItems(ItemList); bool BookingPriceNotOK = CheckIfBookingPriceIsCorrect(ItemList, TotalAmount); bool BookingBalanceNotOK = CheckIfOutstandingBalanceIsCorrect(PaymentRates, TotalOutstanding, TotalAmount); if (BookingHasErrors == true || BookingPriceNotOK == true || BookingBalanceNotOK == true) { //1. Lock the UI this.panel1.Enabled = false; this.panel3.Enabled = false; this.panel5.Enabled = false; this.button5.Enabled = false; //2. Show the message, depending on what was wrong with the booking. if (BookingHasErrors == true) { MessageBox.Show("This booking contains the following error: booking has no items."); } if (BookingBalanceNotOK == true) { MessageBox.Show("This booking contains the following error: the outstanding balance is negative."); } if (BookingPriceNotOK == true) { MessageBox.Show("This booking contains the following error: the booking price is not correct."); } } PaymentRates.Clear(); }
//------------------------------------------------------------------------------------- //add items button private void button4_Click(object sender, EventArgs e) { string productName = comboBoxProducts.Text; if (productName == "" || productName.Equals(noProductSelectedNotice)) { MessageBox.Show("You must choose a product!"); } if (this.StartDatePicker.Value >= this.ReturnDatePicker.Value) { MessageBox.Show("Please change the dates!!"); } else { itemsChanged = true; if (checkBoxContra.Checked == true && textBoxNote.Text == string.Empty) { MessageBox.Show("You cannot add contra item without a note!!"); } else { foreach (DataRow dr in ds_products.Tables[0].Rows) { if (dr["ProductName"].ToString() == productName) { object[] parameters = new object[9]; parameters[0] = dr["ProductName"].ToString(); if (checkBoxContra.Checked == true) { decimal contra_amount = -1 * Convert.ToDecimal(dr["ProductPrice"]); parameters[1] = contra_amount; } else { parameters[1] = Convert.ToDecimal(dr["ProductPrice"]); } if (textBoxDiscount.Text == string.Empty) { parameters[2] = Convert.ToDecimal(0.00); } else { parameters[2] = Convert.ToDecimal(textBoxDiscount.Text); } string startDateStrShort = dbUtil.FormatDate(this.StartDatePicker.Value); string endDateStrShort = dbUtil.FormatDate(this.ReturnDatePicker.Value); parameters[3] = startDateStrShort; parameters[4] = this.mtbDepartureTime.Text; parameters[5] = endDateStrShort; parameters[6] = this.mtbArrivalTime.Text; parameters[7] = this.textBoxNote.Text; itemCounter++; dataGridView1.Rows.Add(parameters); item = new BookingItems(); item.BookingNumber = booking.BookingNumber; item.ItemName = dr["ProductName"].ToString(); item.StartDate = startDateStrShort; //this.StartDatePicker.Value.ToShortDateString(); item.ReturnDate = endDateStrShort; //this.ReturnDatePicker.Value.ToShortDateString(); if (checkBoxContra.Checked == true) { decimal contra_price = -1 * Convert.ToDecimal(dr["ProductPrice"].ToString()); item.ItemPrice = contra_price; } else { item.ItemPrice = Convert.ToDecimal(dr["ProductPrice"].ToString()); } item.ItemProvider = dr["ProductProvider"].ToString(); item.ArrivalTime = this.mtbDepartureTime.Text; item.DepartueTime = this.mtbArrivalTime.Text; item.BookingNote = this.textBoxNote.Text; item.ItemType = dr["ProductType"].ToString(); if (textBoxDiscount.Text == string.Empty) { item.Discount = 0; } else { item.Discount = Convert.ToDecimal(textBoxDiscount.Text); } item.VersionCode = 1; ItemList.Add(item); decimal discountedPrice = item.ItemPrice - item.Discount; TotalAmount += discountedPrice; TotalOutstanding += discountedPrice; this.textBoxTotalPrice.Text = TotalAmount.ToString(); this.textBoxOutstanding.Text = TotalOutstanding.ToString(); } }//end foreach comboBoxProducts.ResetText(); comboBoxProducts.SelectedIndex = 0; textBoxDiscount.Clear(); mtbDepartureTime.Clear(); mtbArrivalTime.Clear(); textBoxNote.Clear(); textBoxDiscount.Text = "0.00"; } } }
private void button4_Click(object sender, EventArgs e) { string productName = comboBoxProducts.Text; if (productName.Equals(string.Empty) || productName.Equals(noProductSelectedNotice)) { MessageBox.Show("You must choose a product!"); } if (this.StartDatePicker.Value >= this.ReturnDatePicker.Value) { MessageBox.Show("Please check the start and return date!"); } else { foreach (DataRow dr in ds.Tables[0].Rows) { if (dr["ProductName"].ToString() == productName) { object[] parameters = new object[8]; parameters[0] = dr["ProductName"].ToString(); parameters[1] = dr["ProductPrice"].ToString(); if (textBoxDiscount.Text == string.Empty) { parameters[2] = 0.00; } else { parameters[2] = Convert.ToDecimal(textBoxDiscount.Text); } string startDateStrShort = dbUtil.FormatDate(this.StartDatePicker.Value); string endDateStrShort = dbUtil.FormatDate(this.ReturnDatePicker.Value); parameters[3] = startDateStrShort; parameters[4] = this.mtbDepartureTime.Text; parameters[5] = endDateStrShort; parameters[6] = this.mtbArrivalTime.Text; parameters[7] = this.textBoxNote.Text; item = new BookingItems(); item.ItemName = dr["ProductName"].ToString(); item.StartDate = startDateStrShort; item.ReturnDate = endDateStrShort; item.ItemPrice = Convert.ToDecimal(dr["ProductPrice"].ToString()); item.ItemProvider = dr["ProductProvider"].ToString(); item.ArrivalTime = this.mtbArrivalTime.Text; item.DepartueTime = this.mtbDepartureTime.Text; item.BookingNote = this.textBoxNote.Text; item.ItemType = dr["ProductType"].ToString(); if (item.ItemType.Equals("Course")) { PaymentDeadlineDatePicker.Value = StartDatePicker.Value.AddDays(-14); } if (textBoxDiscount.Text == string.Empty) { item.Discount = 0; } else { item.Discount = Convert.ToDecimal(textBoxDiscount.Text); } item.VersionCode = 1; dataGridView1.Rows.Add(parameters); ItemList.Add(item); decimal discountedPrice = item.ItemPrice - item.Discount; TotalAmount += discountedPrice; this.textBoxTotalPrice.Text = TotalAmount.ToString(); } } comboBoxProducts.ResetText(); comboBoxProducts.SelectedIndex = 0; textBoxDiscount.Clear(); mtbDepartureTime.Clear(); mtbArrivalTime.Clear(); textBoxNote.Clear(); textBoxDiscount.Text = "0.00"; } }