public ActionResult PaymentOrRefund(payment _payment)
        {
            // Identify session
            long sessionID = sessionService.GetSessionID(this.HttpContext, true, false);
            long IPMEventID = sessionService.GetSessionIPMEventID(sessionID);
            long userID = sessionService.GetSessionUserID(this.HttpContext, false, false);

            // Create and insert payment
            _payment.idIPMEvent = sessionService.GetSessionIPMEventID(sessionID);
            _payment.idSession = sessionID;
            _payment.createDate = DateTime.Now;
            _payment.lastUpdate = DateTime.Now;

            payments.Insert(_payment);
            payments.Commit();
            long ID = _payment.ID;

            var _selecteditems = selecteditems.GetAll().Where(s => s.idSession == sessionID);
            foreach (selecteditem item in _selecteditems)
            {
                bool editMode = item.idReservationItem != null && item.isSiteChecked;
                bool cancelMode = item.idReservationItem != null && !item.isSiteChecked;
                bool newMode = item.idReservationItem == null && item.isSiteChecked;

                // Update existing reservation item - For edit mode
                if (cancelMode)
                {
                    var old_reservationitem = reservationitems.GetById(item.idReservationItem);
                    old_reservationitem.isCancelled = true;
                    old_reservationitem.timeStamp = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss");
                    old_reservationitem.total = 0;
                    reservationitems.Update(old_reservationitem);
                    reservationitems.Commit();
                }
                if (editMode)
                {
                    // Create and insert reservation items
                    var _reservationitem = reservationitems.GetById(item.idReservationItem);
                    _reservationitem.idIPMEvent = item.idIPMEvent.Value;
                    _reservationitem.idRVSite = item.idRVSite.Value;
                    _reservationitem.idCustomer = item.idCustomer.Value;
                    _reservationitem.idStaff = item.idStaff.Value;
                    _reservationitem.checkInDate = item.checkInDate;
                    _reservationitem.checkOutDate = item.checkOutDate;
                    _reservationitem.site = item.site;
                    _reservationitem.siteType = item.siteType;
                    _reservationitem.weeks = item.weeks;
                    _reservationitem.weeklyRate = item.weeklyRate;
                    _reservationitem.days = item.days;
                    _reservationitem.dailyRate = item.dailyRate;
                    _reservationitem.total = item.total;
                    _reservationitem.isCancelled = false;
                    _reservationitem.lastUpdate = DateTime.Now;
                    _reservationitem.timeStamp = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss");
                    reservationitems.Update(_reservationitem);
                    reservationitems.Commit();
                }
                if (newMode)
                {
                    // Create and insert reservation items
                    var _reservationitem = new reservationitem();
                    _reservationitem.idIPMEvent = item.idIPMEvent.Value;
                    _reservationitem.idRVSite = item.idRVSite.Value;
                    _reservationitem.idCustomer = item.idCustomer.Value;
                    _reservationitem.idStaff = item.idStaff.Value;
                    _reservationitem.checkInDate = item.checkInDate;
                    _reservationitem.checkOutDate = item.checkOutDate;
                    _reservationitem.site = item.site;
                    _reservationitem.siteType = item.siteType;
                    _reservationitem.weeks = item.weeks;
                    _reservationitem.weeklyRate = item.weeklyRate;
                    _reservationitem.days = item.days;
                    _reservationitem.dailyRate = item.dailyRate;
                    _reservationitem.total = item.total;
                    _reservationitem.isCancelled = false;
                    _reservationitem.createDate = DateTime.Now;
                    _reservationitem.lastUpdate = DateTime.Now;
                    _reservationitem.timeStamp = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss");
                    reservationitems.Insert(_reservationitem);
                    reservationitems.Commit();
                    // Create link between payment and reservation
                    var _paymentreservationitem = new paymentreservationitem();
                    _paymentreservationitem.idIPMEvent = item.idIPMEvent.Value;
                    _paymentreservationitem.idPayment = _payment.ID;
                    _paymentreservationitem.createDate = DateTime.Now;
                    _paymentreservationitem.lastUpdate = DateTime.Now;
                    _paymentreservationitem.idPayment = ID;
                    _paymentreservationitem.idReservationItem = _reservationitem.ID;
                    paymentsreservationitems.Insert(_paymentreservationitem);
                    paymentsreservationitems.Commit();
                }
            }
            // Clean selected items
            paymentService.CleanAllSelectedItems(sessionID, userID);
            paymentService.CleanOldSelectedItem(IPMEventID, userID);
            // 
            sessionService.ResetSessionCustomer(sessionID);



            return RedirectToAction("PrintPayment", new { id = ID });
        }
Esempio n. 2
0
        public ActionResult PaymentOrRefund(payment _payment)
        {
            // Identify session
            long sessionID = sessionService.GetSessionID(this.HttpContext);

            // Create and insert payment
            _payment.idSession = sessionID;
            _payment.createDate = DateTime.Now;
            _payment.lastUpdate = DateTime.Now;

            payments.Insert(_payment);
            payments.Commit();
            long ID = _payment.ID;

            var _selecteditems = selecteditems.GetAll().Where(s => s.idSession == sessionID);
            foreach (selecteditem item in _selecteditems)
            {
                if (item.isSiteChecked)
                {
                    // Update existing reservation item - For edit mode
                    if (item.idReservationItem != null &&
                        item.idReservationItem != IDnotFound)
                    {
                        var old_reservationitem = reservationitems.GetById(item.idReservationItem);
                        old_reservationitem.isCancelled = true;
                        old_reservationitem.total = 0;
                        reservationitems.Update(old_reservationitem);
                    }
                    // Create and insert reservation items
                    var _reservationitem = new reservationitem();
                    _reservationitem.idRVSite = item.idRVSite.Value;
                    _reservationitem.idCustomer = item.idCustomer.Value;
                    _reservationitem.idStaff = item.idStaff.Value;
                    _reservationitem.checkInDate = item.checkInDate;
                    _reservationitem.checkOutDate = item.checkOutDate;
                    _reservationitem.site = item.site;
                    _reservationitem.siteType = item.siteType;
                    _reservationitem.weeks = item.weeks;
                    _reservationitem.weeklyRate = item.weeklyRate;
                    _reservationitem.days = item.days;
                    _reservationitem.dailyRate = item.dailyRate;
                    _reservationitem.total = item.total;
                    _reservationitem.createDate = DateTime.Now;
                    _reservationitem.lastUpdate = DateTime.Now;
                    reservationitems.Insert(_reservationitem);
                    reservationitems.Commit();
                    // Create link between payment and reservation
                    // *****_reservationitem.idPayment
                    var _paymentreservationitem = new paymentreservationitem();
                    _paymentreservationitem.idPayment = _payment.ID;
                    _paymentreservationitem.idReservationItem = _reservationitem.ID;
                    _paymentreservationitem.createDate = DateTime.Now;
                    _paymentreservationitem.lastUpdate = DateTime.Now;
                    paymentsreservationitems.Insert(_paymentreservationitem);
                    paymentsreservationitems.Commit();
                }
            }

            // Clean selected items
            paymentService.CleanAllSelectedItems(sessionID);
            //
            sessionService.ResetSessionCustomer(sessionID);

            return RedirectToAction("PrintPayment", new { id = ID });
        }