/** * Get number of pax. */ public int getCountPax() { return (int)this.getField(Booking.PAX).getValue(); } /**
/** * How many of this type of passenger (ie., single, double, etc.) are in this type of room?. */ public int getPaxInRoom(int iRoomType) { if (this.getField(BookingDetail.BOOKING_PAX_ID).getValue() != 0) return 1; // Pax mod **FIX THIS** else { Booking booking = (Booking)this.getBooking(true); if ((iRoomType >= PaxCategory.SINGLE_ID) && (iRoomType <= PaxCategory.CHILD_ID)) { int iFieldSeq = booking.getFieldSeq(Booking.SINGLE_PAX) + iRoomType - PaxCategory.SINGLE_ID; return (int)booking.getField(iFieldSeq).getValue(); } else return booking.getCountPax(); } } /**
/** * Add all standard file & field behaviors. * Override this to add record listeners and filters. */ public void addListeners() { super.addListeners(); this.getField(Booking.NET).addListener(new MergeDataAddHandler(null)); this.getField(Booking.COMMISSION).addListener(new MergeDataAddHandler(null)); this.getField(Booking.GROSS).addListener(new MergeDataAddHandler(null)); this.getField(Booking.BALANCE).addListener(new MergeDataAddHandler(null)); } /**
/** * Override this to open the other files in the query. */ public void openOtherRecords() { Booking recBooking = (Booking)this.getRecord(Booking.BOOKING_FILE); Tour recTour = (Tour)((ReferenceField)recBooking.getField(Booking.TOUR_ID)).getReferenceRecord(this); super.openOtherRecords(); } /**
this.addListener(new BookingSoftDeleteHandler(this.getField(Booking.DELETED))); // @pend(don) Add this +++ this.getField(Booking.DELETED))); this.getField(Booking.PAX).addListener(new CalcDepositHandler(null)); this.getField(Booking.TOUR_ID).addListener(new CalcDepositHandler(null)); this.getField(Booking.BOOKING_STATUS_ID).addListener(new BookingStatusEventHandler(TourEvent.BOOKING_STATUS)); this.getField(Booking.BOOKED).addListener(new TourEventHandler(TourEvent.BOOKING)); this.getField(Booking.DEPOSIT_RECEIVED).addListener(new TourEventHandler(TourEvent.DEPOSIT_RECEIVED)); this.getField(Booking.FINAL_PAYMENT_RECEIVED).addListener(new TourEventHandler(TourEvent.FINAL_PAYMENT_RECEIVED)); this.getField(Booking.DEPOSIT_DUE).addListener(new TourEventHandler(TourEvent.DEPOSIT_DUE)); this.getField(Booking.FINAL_PAYMENT_DUE).addListener(new TourEventHandler(TourEvent.FINAL_PAY_DUE)); this.getField(Booking.CANCELLED).addListener(new TourEventHandler(TourEvent.CANCELLATION)); this.getField(Booking.CANCELLED).addListener(new BookingCancelledEventHandler(null)); this.getField(Booking.BALANCE).addListener(new BookingPaymentEventHandler(null)); this.getField(Booking.BOOKED).addListener(new CalcBookingActionDateHandler(null)); this.getField(Booking.BOOKING_DATE).addListener(new CalcBookingActionDateHandler(null)); this.getField(Booking.DEPOSIT_DUE).addListener(new CalcBookingActionDateHandler(null)); this.getField(Booking.FINAL_PAYMENT_DUE).addListener(new CalcBookingActionDateHandler(null)); this.getField(Booking.DEPOSIT_DUE_DATE).addListener(new CalcBookingActionDateHandler(null)); this.getField(Booking.FINAL_PAYMENT_DUE_DATE).addListener(new CalcBookingActionDateHandler(null)); this.getField(Booking.TOUR_PRICING_TYPE_ID).addListener(new ChangePricingTypeHandler(null)); this.getField(Booking.NON_TOUR_PRICING_TYPE_ID).addListener(new ChangePricingTypeHandler(null)); this.getField(Booking.DESCRIPTION).addListener(new SyncBookingFieldHandler(Tour.DESCRIPTION)); this.getField(Booking.CODE).addListener(new SyncBookingFieldHandler(Tour.CODE));
Calendar depositDate = ((DateTimeField)this.getField(Booking.BOOKING_DATE)).getCalendar(); if (finalDate.before(calCurrentTime)) finalDate = calCurrentTime; ((DateTimeField)this.getField(Booking.FINAL_PAYMENT_DUE_DATE)).setCalendar(finalDate, DBConstants.DISPLAY, DBConstants.SCREEN_MOVE); if (depositDate.after(finalDate)) depositDate = finalDate; ((DateTimeField)this.getField(Booking.DEPOSIT_DUE_DATE)).setCalendar(depositDate, DBConstants.DISPLAY, DBConstants.SCREEN_MOVE); this.getField(Booking.BOOKING_STATUS_ID).moveFieldToThis(recTourClass.getField(TourClass.INITIAL_BOOKING_STATUS_ID)); if (!recTourClass.getField(TourClass.MARKUP).isNull()) this.getField(Booking.MARKUP).moveFieldToThis(recTourClass.getField(TourClass.MARKUP)); if (!recTourClass.getField(TourClass.TOUR_PRICING_TYPE_ID).isNull()) this.getField(Booking.TOUR_PRICING_TYPE_ID).moveFieldToThis(recTourClass.getField(TourClass.TOUR_PRICING_TYPE_ID)); if (!recTourClass.getField(TourClass.NON_TOUR_PRICING_TYPE_ID).isNull()) this.getField(Booking.NON_TOUR_PRICING_TYPE_ID).moveFieldToThis(recTourClass.getField(TourClass.NON_TOUR_PRICING_TYPE_ID)); return DBConstants.NORMAL_RETURN;
/** * Add the listeners that require the booking (main) record. */ public void addSubListeners(Booking recBooking) { if (this.getListener(HistoryHandler.class.getName()) == null) { this.addListener(new SequenceHandler(this.getField(BookingLine.SEQUENCE), recBooking.getField(Booking.NEXT_LINE_SEQUENCE))); this.getField(BookingLine.QUANTITY).addListener(new InitFieldHandler(recBooking.getField(Booking.PAX))); this.getField(BookingLine.COMMISSION_RATE).addListener(new InitFieldHandler(recBooking.getField(Booking.STD_COMMISSION))); this.getField(BookingLine.GROSS).setEnabled(false); this.getField(BookingLine.COMMISSION).setEnabled(false); this.getField(BookingLine.NET).setEnabled(false); } } /**
/** * UpdateBookingComponentCostPricing Method. */ public int updateBookingComponentCostPricing(Booking recBooking, int iChangeType) { int iErrorCode = DBConstants.NORMAL_RETURN; double dPPCost = this.getField(BookingDetail.TOTAL_COST_LOCAL).getValue(); int iQuantity = this.getPaxInRoom(PaxCategory.ALL_ID); if (iQuantity != 0) dPPCost = dPPCost / iQuantity; iErrorCode = this.updateBookingLine(this.getBookingLine(), PricingType.COMPONENT_COST_PRICING, PaxCategory.ALL_ID, iQuantity, dPPCost, true, recBooking.getField(Booking.COMMISSION).getValue(), null, PricingStatus.OKAY, iChangeType); return iErrorCode; } /**
this.addListener(new FreeOnFreeHandler(recProfileControl)); this.getField(Booking.BOOKING_STATUS_ID).addListener(new InitFieldHandler(recBookingControl.getField(BookingControl.BOOKING_STATUS_ID))); this.getField(Booking.MARKUP).addListener(new InitFieldHandler(recBookingControl.getField(BookingControl.MARKUP))); this.getField(Booking.TOUR_PRICING_TYPE_ID).addListener(new InitFieldHandler(recBookingControl.getField(BookingControl.TOUR_PRICING_TYPE_ID))); this.getField(Booking.NON_TOUR_PRICING_TYPE_ID).addListener(new InitFieldHandler(recBookingControl.getField(BookingControl.NON_TOUR_PRICING_TYPE_ID))); this.getField(Booking.STD_COMMISSION).addListener(new InitFieldHandler(recBookingControl.getField(BookingControl.AGENCY_COMM))); this.getField(Booking.LANGUAGE_ID).addListener(new InitFieldHandler(recProfileControl.getField(ProfileControl.LANGUAGE_ID))); this.getField(Booking.CURRENCYS_ID).addListener(new InitFieldHandler(recProfileControl.getField(ProfileControl.CURRENCYS_ID))); this.getField(Booking.PAX).addListener(new InitFieldHandler((BaseField)recBookingControl.getField(BookingControl.PAX), true, true)); this.getField(Booking.SINGLE_PAX).addListener(new InitFieldHandler((BaseField)recBookingControl.getField(BookingControl.SINGLE_PAX), true, true)); this.getField(Booking.DOUBLE_PAX).addListener(new InitFieldHandler((BaseField)recBookingControl.getField(BookingControl.DOUBLE_PAX), true, true));
/** * UpdateBookingComponentCostPricing Method. */ public int updateBookingComponentCostPricing(Booking recBooking, int iChangeType) { int iErrorCode = DBConstants.NORMAL_RETURN; double dCost = this.getField(BookingDetail.TOTAL_COST_LOCAL).getValue(); int iQuantity = (int)this.getField(BookingCar.QUANTITY).getValue(); iErrorCode = this.updateBookingLine(this.getBookingLine(), PricingType.COMPONENT_COST_PRICING, PaxCategory.ALL_ID, iQuantity, dCost, true, recBooking.getField(Booking.COMMISSION).getValue(), null, PricingStatus.OKAY, iChangeType); return iErrorCode; } /**
if (objID instanceof Integer) Tour recTour = (Tour)((ReferenceField)this.getField(Booking.TOUR_ID)).getReference(); TourHeader recTourHeader = (TourHeader)((ReferenceField)recTour.getField(Tour.TOUR_HEADER_ID)).getReferenceRecord(this.findRecordOwner()); try { int iErrorCode = this.addTourDetail(recTour, recTourHeader, recBookingPax, recBookingAnswer, dateStart, this.getField(Booking.ASK_FOR_ANSWER)); return new Integer(iErrorCode); // Success
this.getField(BookingLine.QUANTITY).moveFieldToThis(recBooking.getField(Booking.SINGLE_PAX)); else if (iPaxCat == PaxCategory.DOUBLE_ID) this.getField(BookingLine.QUANTITY).moveFieldToThis(recBooking.getField(Booking.DOUBLE_PAX)); else if (iPaxCat == PaxCategory.TRIPLE_ID) this.getField(BookingLine.QUANTITY).moveFieldToThis(recBooking.getField(Booking.TRIPLE_PAX)); else if (iPaxCat == PaxCategory.QUAD_ID) this.getField(BookingLine.QUANTITY).moveFieldToThis(recBooking.getField(Booking.QUAD_PAX)); else if (iPaxCat == PaxCategory.CHILD_ID) this.getField(BookingLine.QUANTITY).moveFieldToThis(recBooking.getField(Booking.CHILDREN)); else if ((iPaxCat == 0) || (iPaxCat == PaxCategory.ALL_ID)) this.getField(BookingLine.QUANTITY).moveFieldToThis(recBooking.getField(Booking.PAX)); this.getField(BookingLine.COMMISSION_RATE).moveFieldToThis(recBooking.getField(Booking.STD_COMMISSION)); else this.getField(BookingLine.COMMISSION_RATE).moveFieldToThis(recTourHeaderDetail.getField(TourHeaderLine.COMMISSION_RATE));
/** * Write this record and re-read if (if it has been modified). * @return the bookmark. */ public Object writeAndRefresh() throws DBException { Object bookmark = super.writeAndRefresh(); Record recTour = ((ReferenceField)this.getField(Booking.TOUR_ID)).getReference(); if (recTour != null) if ((recTour.getEditMode() == DBConstants.EDIT_CURRENT) || (recTour.getEditMode() == DBConstants.EDIT_IN_PROGRESS)) { int iOldOpenMode = recTour.setOpenMode(recTour.getOpenMode() & ~DBConstants.OPEN_READ_ONLY); recTour.writeAndRefresh(); recTour.setOpenMode(iOldOpenMode); } return bookmark; } /**
/** * Override this to open the other files in the query. */ public void openOtherRecords() { new Inventory(this); Booking recBooking = (Booking)this.getRecord(Booking.BOOKING_FILE); Tour recTour = (Tour)((ReferenceField)recBooking.getField(Booking.TOUR_ID)).getReferenceRecord(); // These have already been set up in the screen header TourHeader recTourHdr = (TourHeader)((ReferenceField)recTour.getField(Tour.TOUR_HEADER_ID)).getReferenceRecord(); TourClass recTourClass = (TourClass)((ReferenceField)recTourHdr.getField(TourHeader.TOUR_CLASS_ID)).getReferenceRecord(this); if (this.getRecord(BookingControl.BOOKING_CONTROL_FILE) == null) new BookingControl(this); super.openOtherRecords(); } /**
/** * Get/create and setup the BookingLine record. */ public BookingLine getBookingLine() { if (m_recBookingLine == null) { Booking recBooking = (Booking)this.getBooking(true); Tour recTour = (Tour)((ReferenceField)recBooking.getField(Booking.TOUR_ID)).getReference(); m_recBookingLine = new BookingLine(this.findRecordOwner()); m_recBookingLine.addDetailBehaviors(recBooking, recTour); if (m_recBookingLine.getRecordOwner() != null) m_recBookingLine.getRecordOwner().removeRecord(m_recBookingLine); // Set it is not on the recordowner's list this.addListener(new FreeOnFreeHandler(m_recBookingLine)); } return m_recBookingLine; } /**
/** * FieldChanged Method. */ public int fieldChanged(boolean bDisplayOption, int iMoveMode) { Booking recBooking = (Booking)this.getOwner().getRecord(); Tour recTour = null; if (!recBooking.getField(Booking.TOUR_ID).isNull()) recTour = (Tour)((ReferenceField)recBooking.getField(Booking.TOUR_ID)).getReference(); if (recTour != null) if ((recTour.getEditMode() == DBConstants.EDIT_CURRENT) || (recTour.getEditMode() == DBConstants.EDIT_IN_PROGRESS)) { Record recTourHeader = ((ReferenceField)recTour.getField(Tour.TOUR_HEADER_ID)).getReference(); if (recTourHeader != null) if (recTourHeader.getField(TourHeader.TOUR_SERIES).getState() == false) { if (recBooking.getListener(WriteOnUpdateHandler.class) == null) recBooking.addListener(new WriteOnUpdateHandler(recTour, false)); boolean[] rgbEnabled = recTour.getField(m_iTourFieldSeq).setEnableListeners(false); recTour.getField(m_iTourFieldSeq).moveFieldToThis(this.getOwner()); recTour.getField(m_iTourFieldSeq).setEnableListeners(rgbEnabled); } } return super.fieldChanged(bDisplayOption, iMoveMode); }
if ((m_recBooking.getEditMode() == DBConstants.EDIT_CURRENT) ||(m_recBooking.getEditMode() == DBConstants.EDIT_CURRENT)) if (m_recBooking.getField(Booking.TOUR_ID).equals(this.getOwner().getField(Tour.ID))) bBookingOkay = true;
/** * AddSecondProfile Method. */ public void addSecondProfile(Record recProfile) { ReadSecondaryHandler behavior = new ReadSecondaryHandler(recProfile, Profile.PROFILE_CODE_KEY); behavior.setRespondsToMode(DBConstants.READ_MOVE, false); this.getField(Booking.PROFILE_CODE).addListener(behavior); behavior.addFieldSeqPair(Booking.PROFILE_ID, Profile.ID, DBConstants.MOVE_TO_DEPENDENT, DBConstants.DONT_MOVE_DEPENDENT_BACK); behavior.addFieldSeqPair(Booking.PROFILE_CODE, Profile.PROFILE_CODE, DBConstants.MOVE_TO_DEPENDENT, DBConstants.DONT_MOVE_DEPENDENT_BACK); behavior.addFieldSeqPair(Booking.GENERIC_NAME, Profile.GENERIC_NAME, DBConstants.MOVE_TO_DEPENDENT, DBConstants.MOVE_DEPENDENT_BACK); behavior.addFieldSeqPair(Booking.ADDRESS_LINE_1, Profile.ADDRESS_LINE_1, DBConstants.MOVE_TO_DEPENDENT, DBConstants.MOVE_DEPENDENT_BACK); behavior.addFieldSeqPair(Booking.ADDRESS_LINE_2, Profile.ADDRESS_LINE_2, DBConstants.MOVE_TO_DEPENDENT, DBConstants.MOVE_DEPENDENT_BACK); behavior.addFieldSeqPair(Booking.CITY_OR_TOWN, Profile.CITY_OR_TOWN, DBConstants.MOVE_TO_DEPENDENT, DBConstants.MOVE_DEPENDENT_BACK); behavior.addFieldSeqPair(Booking.COUNTRY, Profile.COUNTRY, DBConstants.MOVE_TO_DEPENDENT, DBConstants.MOVE_DEPENDENT_BACK); behavior.addFieldSeqPair(Booking.STATE_OR_REGION, Profile.STATE_OR_REGION, DBConstants.MOVE_TO_DEPENDENT, DBConstants.MOVE_DEPENDENT_BACK); behavior.addFieldSeqPair(Booking.POSTAL_CODE, Profile.POSTAL_CODE, DBConstants.MOVE_TO_DEPENDENT, DBConstants.MOVE_DEPENDENT_BACK); behavior.addFieldSeqPair(Booking.TEL, Profile.TEL, DBConstants.MOVE_TO_DEPENDENT, DBConstants.MOVE_DEPENDENT_BACK); behavior.addFieldSeqPair(Booking.FAX, Profile.FAX, DBConstants.MOVE_TO_DEPENDENT, DBConstants.MOVE_DEPENDENT_BACK); behavior.addFieldSeqPair(Booking.EMAIL, Profile.EMAIL, DBConstants.MOVE_TO_DEPENDENT, DBConstants.MOVE_DEPENDENT_BACK); behavior.addFieldSeqPair(Booking.LANGUAGE_ID, Profile.PRIMARY_LANGUAGE_ID, DBConstants.MOVE_TO_DEPENDENT, DBConstants.MOVE_DEPENDENT_BACK); behavior.addFieldSeqPair(Booking.CURRENCYS_ID, Profile.CURRENCYS_ID, DBConstants.MOVE_TO_DEPENDENT, DBConstants.MOVE_DEPENDENT_BACK); // Only move contact if not blank Converter convTrueIfContactNotBlank = new RadioConverter(this.getField(Booking.CONTACT), DBConstants.BLANK, true); recProfile.addListener(new RemoveConverterOnCloseHandler(convTrueIfContactNotBlank)); MoveOnValidHandler moveHandler = behavior.addFieldSeqPair(Booking.CONTACT, Profile.CONTACT, DBConstants.MOVE_TO_DEPENDENT, DBConstants.DONT_MOVE_DEPENDENT_BACK, convTrueIfContactNotBlank, null); moveHandler.setDisableOnMove(false); } /**
/** * Setup the detail key, given this tour detail record. */ public int setupDetailKey(TourSub recTourHeaderDetail, Booking recBooking, Tour recTour, BaseField fldPaxID, BaseField fldQaID, BaseField fldModID, Date dateStart) { this.getField(BookingSub.BOOKING_ID).moveFieldToThis(recBooking.getField(Booking.ID), DBConstants.DISPLAY, DBConstants.INIT_MOVE); this.getField(BookingSub.BOOKING_PAX_ID).setValue(0, DBConstants.DISPLAY, DBConstants.INIT_MOVE); if (fldPaxID != null) if (fldPaxID.getValue() != 0) this.getField(BookingSub.BOOKING_PAX_ID).moveFieldToThis(fldPaxID, DBConstants.DISPLAY, DBConstants.INIT_MOVE); if (fldModID != null) this.getField(BookingSub.MODULE_ID).moveFieldToThis(fldModID, DBConstants.DISPLAY, DBConstants.INIT_MOVE); else this.getField(BookingSub.MODULE_ID).setValue(0, DBConstants.DISPLAY, DBConstants.INIT_MOVE); if (recTourHeaderDetail == null) this.getField(BookingSub.TOUR_HEADER_DETAIL_ID).initField(DBConstants.DISPLAY); else this.getField(BookingSub.TOUR_HEADER_DETAIL_ID).moveFieldToThis(recTourHeaderDetail.getField(TourHeaderDetail.ID), DBConstants.DISPLAY, DBConstants.INIT_MOVE); ((DateTimeField)this.getField(BookingSub.MODULE_START_DATE)).setDateTime(dateStart, DBConstants.DISPLAY, DBConstants.INIT_MOVE); return DBConstants.NORMAL_RETURN; } /**