private bool SaveData(Int64 reservationId)
{
bool result = false;
DbConnection connection = null;
DbTransaction transaction = null;
try
{
Database db = DatabaseFactory.CreateDatabase(Constants.HBMCONNECTIONSTRING);
connection = db.CreateConnection();
connection.Open();
transaction = connection.BeginTransaction();
ResMan.Reservation reservation = new GenRes.Reservation();
reservation.ReservationId = reservationId;
reservation.CompanyId = Master.CurrentCompany.CompanyId;
reservation.CustomerId = Convert.ToInt32(cmbCustomer.Value);
reservation.SourceId = Convert.ToInt32(cmbSource.Value);
reservation.CheckInDate = Convert.ToDateTime(dtCheckingDate.Text);
reservation.CheckOutDate = Convert.ToDateTime(dtCheckOutDate.Text);
reservation.StatusId = Convert.ToInt32(cmbResStatus.SelectedItem.Value.ToString());
reservation.RoomTotal = Convert.ToDecimal(txtRoomTotal.Text.Trim());
reservation.ServiceTotal = Convert.ToDecimal(txtServiceTotal.Text.Trim());
reservation.NetTotal = Convert.ToDecimal(txtNetTotal.Text.Trim());
reservation.Discount = Convert.ToDecimal(txtDiscount.Text.Trim());
reservation.TaxTypeId = Convert.ToInt32(cmbTax.Value);
reservation.TaxAmount = Convert.ToDecimal(txtTaxTotal.Text.Trim());
reservation.Total = Convert.ToDecimal(txtTotal.Text.Trim());
reservation.PaidAmount = Convert.ToDecimal(txtPaidAmount.Text.Trim());
reservation.Balance = Convert.ToDecimal(txtBalance.Text.Trim());
reservation.TaxPercentage = Convert.ToDecimal(hdnTaxPercent.Value == string.Empty ? "0" : hdnTaxPercent.Value);
reservation.CreatedUser = Master.LoggedUser.UsersId;
reservation.UpdatedUser = Master.LoggedUser.UsersId;
if (Session[Constants.SESSION_RESERVATION_ROOMINFORMATION] != null)
{
reservation.ReservationRoomDataSet = (DataSet)Session[Constants.SESSION_RESERVATION_ROOMINFORMATION];
}
else
{
reservationRoom.ReservationId = reservationId;
reservation.ReservationRoomDataSet = reservationRoom.SelectAllDataSetByReseervationId();
}
if (Session[Constants.SESSION_RESERVATION_ADDTIONALSERVICE] != null)
{
reservation.ReservationAdditionalServiceDataSet = (DataSet)Session[Constants.SESSION_RESERVATION_ADDTIONALSERVICE];
}
else
{
reservationAdditionalService.ReservationId = reservationId;
reservation.ReservationAdditionalServiceDataSet = reservationAdditionalService.SelectAllDataSetByReservationID();
}
if (Session[Constants.SESSION_RESERVATION_PAYMENTINFORMATION] != null)
{
reservation.ReservationPaymentDataSet = (DataSet)Session[Constants.SESSION_RESERVATION_PAYMENTINFORMATION];
}
else
{
reservationPayments.ReservationId = reservationId;
reservation.ReservationPaymentDataSet = reservationPayments.SelectAllDataSetByReservationID();
}
reservation.Save(db, transaction);
if (reservation.StatusId == (int)HBM.Common.Enums.HBMStatus.CheckOut)
{
if (Session[Constants.SESSION_RESERVATION_ROOMINFORMATION] != null)
{
DataSet roomsToMakeDrity = (DataSet)Session[Constants.SESSION_RESERVATION_ROOMINFORMATION];
if (roomsToMakeDrity != null && roomsToMakeDrity.Tables.Count > 0 && roomsToMakeDrity.Tables[0] != null && roomsToMakeDrity.Tables[0].Rows.Count > 0)
{
for (int i = 0; i <= roomsToMakeDrity.Tables[0].Rows.Count - 1; i++)
{
Room dirtyroom = new Room();
dirtyroom.RoomId = Convert.ToInt32(roomsToMakeDrity.Tables[0].Rows[i]["RoomId"].ToString());
dirtyroom.UpdatedUser = Master.LoggedUser.UsersId;
dirtyroom.UpdateRoomAsDirty(db, transaction);
}
}
}
}
transaction.Commit();
this.hdnReservationId.Value = reservation.ReservationId.ToString();
result = true;
}
catch (System.Exception)
{
transaction.Rollback();
}
return result;
}