예제 #1
0
        public async Task <IActionResult> DeleteBookingPayment(int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            BookingPayment booking = new BookingPayment()
            {
                Id = id
            };

            _repo.Delete(booking);

            try
            {
                await _repo.SaveAll();
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(Ok());
        }
예제 #2
0
        private string BuildBookingPaymentContent(BookingPayment paymentItem)
        {
            StringBuilder strBuilder = new StringBuilder();


            return(strBuilder.ToString());
        }
예제 #3
0
        public ActionResult Payment(BookingPayment bookingPayment)
        {
            Event e                = _eventRequester.Get(bookingPayment.EventId);
            bool  enoughTickets    = e.Tickets >= bookingPayment.TicketsPurchased;
            int?  ticketsRemaining = e.Tickets - bookingPayment.TicketsPurchased;

            try
            {
                if (enoughTickets)
                {
                    //if (SessionManager.User.Id != 0 && !(SessionManager.User.Token is null))
                    //{
                    //    _apiTokenRequester.GetAllWithToken<G.PaymentMethod>("paymentMethod/all/" + SessionManager.User.Id, SessionManager.User.Token);
                    //}

                    if (_apiTokenRequester.UpdateWithToken(new Event(e.Id, e.Name, e.Type, e.Organizer, e.Date, e.Location, ticketsRemaining, e.Price, e.Description)
                                                           , "event/" + bookingPayment.EventId, SessionManager.User.Token))
                    {
                        _apiTokenRequester.CreateWithToken(new G.Booking()
                        {
                            UserId           = bookingPayment.UserId,
                            EventId          = bookingPayment.EventId,
                            PurchaseDate     = DateTime.Now,
                            TicketsPurchased = bookingPayment.TicketsPurchased,
                            TicketsPrice     = bookingPayment.TicketsPrice,
                            Amount           = bookingPayment.Amount
                        }, "booking", SessionManager.User.Token);
                    }

                    if (_apiTokenRequester.GetAllWithToken <G.PaymentMethod>("paymentMethod/all/" + SessionManager.User.Id, SessionManager.User.Token)
                        .Where(p => p.CardNumber == bookingPayment.CardNumber)
                        .FirstOrDefault() is null)
                    {
                        _apiTokenRequester.CreateWithToken(new G.PaymentMethod
                        {
                            UserId         = bookingPayment.UserId,
                            CardHolder     = bookingPayment.CardHolder,
                            CardNumber     = bookingPayment.CardNumber,
                            ExpirationDate = bookingPayment.ExpirationDate,
                            CVVnumber      = bookingPayment.CVVnumber
                        }, "paymentMethod", SessionManager.User.Token);
                    }

                    TempData["Message"] = "Booking successfully completed";

                    return(RedirectToAction("Index", "Booking"));
                }

                ViewBag.Message = $"Only {e.Tickets} ticket(s) remaining";
                return(View(bookingPayment));
            }
            catch
            {
                return(View("Error"));
            }
        }
        void BookingPaymentItem_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            BookingPayment item = sender as BookingPayment;

            if (item != null && e.PropertyName != "IsChanged")
            {
                item.IsChanged = true;
                item.UpdatedBy = Globals.UserLogin.UserName;
            }
        }
 void gvwBookingPayment_CellEditEnded(object sender, GridViewCellEditEndedEventArgs e)
 {
     if (e.NewData != null && e.Cell.ParentRow.Item != null)
     {
         BookingPayment currentRow = (BookingPayment)e.Cell.ParentRow.Item;
         string         columnName = e.Cell.Column.UniqueName;
         if (currentRow != null && columnName == "CustomerPaid")
         {
             currentRow.MoneyLeft = currentRow.TotalPrice - currentRow.CustomerPaid;
         }
     }
 }
예제 #6
0
        public async Task <IActionResult> PostBookingPayment([FromBody] BookingPayment model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _repo.Insert(model);
            await _repo.SaveAll();

            return(NoContent());
        }
예제 #7
0
        void btnEmail_Click(object sender, RoutedEventArgs e)
        {
            BookingPayment paymentItem = this.DataContext as BookingPayment;

            if (paymentItem != null)
            {
                List <BookingPayment> paymentList = new List <BookingPayment>();
                paymentList.Add(paymentItem);
                Globals.IsBusy = true;
                DataServiceHelper.SendBookingPaymentMailAsync(paymentList, SendBookingPaymentMailCompleted);
            }
        }
예제 #8
0
        private void SendOnePaymentMail(SmtpClient smtpClient, BookingPayment paymentItem)
        {
            MailMessage     message   = new MailMessage();
            List <Customer> customers = ApartmentMethods.ListCustomer(null, paymentItem.CustomerId, null, null, null, false, null, null, true);
            string          email     = string.Empty;

            if (customers.Count > 0 && customers[0].ContactInformation != null && !string.IsNullOrEmpty(customers[0].ContactInformation.Email))
            {
                email = customers[0].ContactInformation.Email;
            }

            if (!string.IsNullOrEmpty(email))
            {
                string dateFormat  = "dd-MMM-yyyy";
                string moneyFormat = "C0";
                message.To.Add(new MailAddress(email));
                string subject = string.Format("Payment Details from {0} to {1}", paymentItem.DateStart.ToString(dateFormat), paymentItem.DateEnd.ToString(dateFormat));
                message.Subject    = subject;
                message.IsBodyHtml = true;

                using (FileStream stream = File.OpenRead(HttpContext.Current.Server.MapPath("/EmailTemplates/MonthlyPayment.htm")))
                {
                    StringBuilder strb = new StringBuilder();
                    byte[]        b    = new byte[stream.Length];
                    UTF8Encoding  temp = new UTF8Encoding(true);
                    while (stream.Read(b, 0, b.Length) > 0)
                    {
                        strb.Append(temp.GetString(b));
                    }
                    string content = strb.ToString();

                    CultureInfo customCultureInfo = new CultureInfo(MimosaSettings.GloblaCulture());
                    customCultureInfo.NumberFormat   = (new CultureInfo(MimosaSettings.NumberFormatCulture())).NumberFormat;
                    customCultureInfo.DateTimeFormat = (new CultureInfo(MimosaSettings.DateTimeFormatCulture())).DateTimeFormat;

                    Thread.CurrentThread.CurrentCulture = customCultureInfo;

                    content = string.Format(content, paymentItem.CustomerName, subject, paymentItem.SiteName, paymentItem.RoomName,
                                            paymentItem.DateStart.ToString(dateFormat), paymentItem.DateEnd.ToString(dateFormat),
                                            paymentItem.RoomPrice.ToString(moneyFormat),
                                            paymentItem.EquipmentPrice.ToString(moneyFormat),
                                            paymentItem.ServicePrice.ToString(moneyFormat),
                                            paymentItem.TotalPrice.ToString(moneyFormat),
                                            paymentItem.CustomerPaid.ToString(moneyFormat),
                                            paymentItem.MoneyLeft.ToString(moneyFormat));
                    message.Body = content;

                    smtpClient.Send(message);
                }
            }
        }
 public BookingPayment AddBookingPayment(BookingPayment bookingPayment)
 {
     try
     {
         var booking = Context.BookingPayments.Add(bookingPayment);
         Context.SaveChanges();
         return(booking.Entity);
     }
     catch (Exception ex)
     {
         Logger.LogError($"Failed to add the booking payment with ID {bookingPayment.BookingId} to the database.", ex);
         throw;
     }
 }
예제 #10
0
        private void BookingPaymentDetail_Click(object sender, RoutedEventArgs e)
        {
            HyperlinkButton button = sender as HyperlinkButton;

            if (button != null)
            {
                BookingPayment bookingPayment = button.DataContext as BookingPayment;
                if (bookingPayment != null)
                {
                    ucPaymentDetails.BindData(bookingPayment);
                    uiPopupPaymentDetails.Header = string.Format(ResourceHelper.GetReourceValue("BookingPaymentPage_uiPopupPaymentDetails"),
                                                                 DateHelper.DateToString(bookingPayment.DateStart),
                                                                 DateHelper.DateToString(bookingPayment.DateEnd));
                    uiPopupPaymentDetails.ShowDialog();
                }
            }
        }
 public void UpdateBookingPayment(BookingPayment bookingPayment)
 {
     try
     {
         //var currentBookingPayment = Context.BookingPayments.AsNoTracking().SingleOrDefault(x => x.Id == controleMethode.Id);
         var currentBookingPayment = Context.BookingPayments.SingleOrDefault(x => x.BookingId == bookingPayment.BookingId);
         if (currentBookingPayment != null)
         {
             Context.BookingPayments.Update(bookingPayment);
             Context.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         Logger.LogError($"Cannot update the booking payment with ID {bookingPayment.BookingId}.", ex);
         throw;
     }
 }
예제 #12
0
        private void ExportPaymentDetails()
        {
            BookingPayment paymentItem = this.DataContext as BookingPayment;

            if (paymentItem != null)
            {
                SaveFileDialog objSFD = new SaveFileDialog()
                {
                    DefaultExt  = "csv",
                    Filter      = "CSV Files (*.csv)|*.csv|Excel XML (*.xml)|*.xml|All files (*.*)|*.*",
                    FilterIndex = 1
                };
                if (objSFD.ShowDialog() == true)
                {
                    string        strFormat  = objSFD.SafeFileName.Substring(objSFD.SafeFileName.IndexOf('.') + 1).ToUpper();
                    StringBuilder strBuilder = new StringBuilder();
                    BuildPaymentContent(paymentItem, strBuilder, strFormat);

                    string title = "PaymentDetails_" + DateHelper.DateToString(paymentItem.DateStart, "YYYY-MM-DD") + "_" + DateHelper.DateToString(paymentItem.DateEnd, "YYYY-MM-DD");
                    ReportHelper.ExportStringToFile(objSFD, title, strFormat, strBuilder);
                }
            }
        }
예제 #13
0
 public void BindData(BookingPayment paymentItem)
 {
     this.DataContext = paymentItem;
     DataServiceHelper.ListBookingRoomEquipmentDetailAsync(null, null, paymentItem.BookingId, paymentItem.DateStart, paymentItem.DateEnd, ListBookingRoomEquipmentDetailCompleted);
     DataServiceHelper.ListBookingRoomServiceDetailAsync(null, null, paymentItem.BookingId, paymentItem.DateStart, paymentItem.DateEnd, ListBookingRoomServiceDetailCompleted);
 }
예제 #14
0
        private void BuildPaymentContent(BookingPayment paymentItem, StringBuilder strBuilder, string strFormat)
        {
            List <string> lstFields = new List <string>();

            lstFields.Add(ReportHelper.FormatField("Site:", strFormat));
            lstFields.Add(ReportHelper.FormatField(paymentItem.SiteName, strFormat));
            ReportHelper.BuildStringOfRow(strBuilder, lstFields, strFormat);
            lstFields.Clear();

            lstFields.Add(ReportHelper.FormatField(lblRoom.Text, strFormat));
            lstFields.Add(ReportHelper.FormatField(paymentItem.RoomName, strFormat));
            ReportHelper.BuildStringOfRow(strBuilder, lstFields, strFormat);
            lstFields.Clear();

            lstFields.Add(ReportHelper.FormatField(lblCustomer1.Text, strFormat));
            lstFields.Add(ReportHelper.FormatField(paymentItem.CustomerName, strFormat));
            ReportHelper.BuildStringOfRow(strBuilder, lstFields, strFormat);
            lstFields.Clear();

            lstFields.Add(ReportHelper.FormatField(lblCustomer2.Text, strFormat));
            lstFields.Add(ReportHelper.FormatField(paymentItem.Customer2Name, strFormat));
            ReportHelper.BuildStringOfRow(strBuilder, lstFields, strFormat);
            lstFields.Clear();

            lstFields.Add(ReportHelper.FormatField(lblRoomPrice.Text, strFormat));
            lstFields.Add(ReportHelper.FormatValueColumn(paymentItem.RoomPrice, "0.0", strFormat));
            ReportHelper.BuildStringOfRow(strBuilder, lstFields, strFormat);
            lstFields.Clear();

            lstFields.Add(ReportHelper.FormatField(lblEquipmentPrice.Text, strFormat));
            lstFields.Add(ReportHelper.FormatValueColumn(paymentItem.EquipmentPrice, "0.0", strFormat));
            ReportHelper.BuildStringOfRow(strBuilder, lstFields, strFormat);
            lstFields.Clear();

            List <BookingRoomEquipmentDetail> equipmentDetails = gvwEquipmentDetails.ItemsSource as List <BookingRoomEquipmentDetail>;

            if (equipmentDetails != null && equipmentDetails.Count > 0)
            {
                ReportHelper.AddEmptyColumn(lstFields, 1, strFormat);
                lstFields.Add(ReportHelper.FormatField(gvwEquipmentDetails.Columns[0].Header.ToString(), strFormat));
                lstFields.Add(ReportHelper.FormatField(gvwEquipmentDetails.Columns[1].Header.ToString(), strFormat));
                lstFields.Add(ReportHelper.FormatField(gvwEquipmentDetails.Columns[2].Header.ToString(), strFormat));
                lstFields.Add(ReportHelper.FormatField(gvwEquipmentDetails.Columns[3].Header.ToString(), strFormat));
                lstFields.Add(ReportHelper.FormatField(gvwEquipmentDetails.Columns[4].Header.ToString(), strFormat));
                lstFields.Add(ReportHelper.FormatField(gvwEquipmentDetails.Columns[5].Header.ToString(), strFormat));
                lstFields.Add(ReportHelper.FormatField(gvwEquipmentDetails.Columns[6].Header.ToString(), strFormat));
                lstFields.Add(ReportHelper.FormatField(gvwEquipmentDetails.Columns[7].Header.ToString(), strFormat));
                ReportHelper.BuildStringOfRow(strBuilder, lstFields, strFormat);
                lstFields.Clear();

                foreach (BookingRoomEquipmentDetail item in equipmentDetails)
                {
                    ReportHelper.AddEmptyColumn(lstFields, 1, strFormat);
                    lstFields.Add(ReportHelper.FormatField(item.Equipment, strFormat));
                    lstFields.Add(ReportHelper.FormatField(item.DateStart.Value.ToString("dd-MMM-yyyy"), strFormat));
                    lstFields.Add(ReportHelper.FormatField(item.DateEnd.Value.ToString("dd-MMM-yyyy"), strFormat));
                    lstFields.Add(ReportHelper.FormatField(item.Unit, strFormat));
                    lstFields.Add(ReportHelper.FormatValueColumn(item.Quantity, "0.0", strFormat));
                    lstFields.Add(ReportHelper.FormatValueColumn(item.Price, "0.0", strFormat));
                    lstFields.Add(ReportHelper.FormatValueColumn(item.TotalPrice, "0.0", strFormat));
                    lstFields.Add(ReportHelper.FormatField(item.Description, strFormat));
                    ReportHelper.BuildStringOfRow(strBuilder, lstFields, strFormat);
                    lstFields.Clear();
                }
            }

            lstFields.Add(ReportHelper.FormatField(lblServicePrice.Text, strFormat));
            lstFields.Add(ReportHelper.FormatValueColumn(paymentItem.ServicePrice, "0.0", strFormat));
            ReportHelper.BuildStringOfRow(strBuilder, lstFields, strFormat);
            lstFields.Clear();
            List <BookingRoomServiceDetail> serviceDetails = gvwServiceDetails.ItemsSource as List <BookingRoomServiceDetail>;

            if (serviceDetails != null && serviceDetails.Count > 0)
            {
                ReportHelper.AddEmptyColumn(lstFields, 1, strFormat);
                lstFields.Add(ReportHelper.FormatField(gvwServiceDetails.Columns[0].Header.ToString(), strFormat));
                lstFields.Add(ReportHelper.FormatField(gvwServiceDetails.Columns[1].Header.ToString(), strFormat));
                lstFields.Add(ReportHelper.FormatField(gvwServiceDetails.Columns[2].Header.ToString(), strFormat));
                lstFields.Add(ReportHelper.FormatField(gvwServiceDetails.Columns[3].Header.ToString(), strFormat));
                lstFields.Add(ReportHelper.FormatField(gvwServiceDetails.Columns[4].Header.ToString(), strFormat));
                lstFields.Add(ReportHelper.FormatField(gvwServiceDetails.Columns[5].Header.ToString(), strFormat));
                lstFields.Add(ReportHelper.FormatField(gvwServiceDetails.Columns[6].Header.ToString(), strFormat));
                lstFields.Add(ReportHelper.FormatField(gvwServiceDetails.Columns[7].Header.ToString(), strFormat));
                ReportHelper.BuildStringOfRow(strBuilder, lstFields, strFormat);
                lstFields.Clear();

                foreach (BookingRoomServiceDetail item in serviceDetails)
                {
                    ReportHelper.AddEmptyColumn(lstFields, 1, strFormat);
                    lstFields.Add(ReportHelper.FormatField(item.Service, strFormat));
                    lstFields.Add(ReportHelper.FormatField(item.DateStart.Value.ToString("dd-MMM-yyyy"), strFormat));
                    lstFields.Add(ReportHelper.FormatField(item.DateEnd.Value.ToString("dd-MMM-yyyy"), strFormat));
                    lstFields.Add(ReportHelper.FormatField(item.Unit, strFormat));
                    lstFields.Add(ReportHelper.FormatValueColumn(item.Quantity, "0.0", strFormat));
                    lstFields.Add(ReportHelper.FormatValueColumn(item.Price, "0.0", strFormat));
                    lstFields.Add(ReportHelper.FormatValueColumn(item.TotalPrice, "0.0", strFormat));
                    lstFields.Add(ReportHelper.FormatField(item.Description, strFormat));
                    ReportHelper.BuildStringOfRow(strBuilder, lstFields, strFormat);
                    lstFields.Clear();
                }
            }

            lstFields.Add(ReportHelper.FormatField(lblTotalPrice.Text, strFormat));
            lstFields.Add(ReportHelper.FormatValueColumn(paymentItem.TotalPrice, "0.0", strFormat));
            ReportHelper.BuildStringOfRow(strBuilder, lstFields, strFormat);
            lstFields.Clear();

            lstFields.Add(ReportHelper.FormatField(lblTotalLeft.Text, strFormat));
            lstFields.Add(ReportHelper.FormatValueColumn(paymentItem.MoneyLeft, "0.0", strFormat));
            ReportHelper.BuildStringOfRow(strBuilder, lstFields, strFormat);
            lstFields.Clear();
        }