/** * Get the record type from the field that specifies the record type. * (Override this). * @return The record type (as an object). */ public BaseField getSharedRecordTypeKey() { return this.getField(ApTrx.AP_TRX_TYPE_ID); } /**
double dProductCost = this.getField(ApTrx.DEPARTURE_ESTIMATE).getValue(); dProductCost += recBookingDetail.getField(BookingDetailModel.TOTAL_COST).getValue(); this.getField(ApTrx.DEPARTURE_ESTIMATE).setValue(dProductCost); double dProductCostLocal = this.getField(ApTrx.DEPARTURE_ESTIMATE_LOCAL).getValue(); dProductCostLocal += recBookingDetail.getField(BookingDetailModel.TOTAL_COST_LOCAL).getValue(); this.getField(ApTrx.DEPARTURE_ESTIMATE_LOCAL).setValue(dProductCostLocal); if (dProductCostLocal != 0) this.getField(ApTrx.DEPARTURE_EXCHANGE).setValue(dProductCost / dProductCostLocal); String strServiceDesc = this.getField(ApTrx.DESCRIPTION).getString(); if (strServiceDesc.length() > 0) strServiceDesc += ", "; strServiceDesc += recBookingDetail.getProductDesc(); this.getField(ApTrx.DESCRIPTION).setString(strServiceDesc); Date dateStart = ((DateField)this.getField(ApTrx.START_SERVICE_DATE)).getDateTime(); Date dateEnd = ((DateField)this.getField(ApTrx.END_SERVICE_DATE)).getDateTime(); Date date = recBookingDetail.getStartDate(); if ((dateStart == null) || (date.getTime() < dateStart.getTime())) if ((dateEnd == null) || (date.getTime() > dateEnd.getTime())) dateEnd = date; ((DateField)this.getField(ApTrx.START_SERVICE_DATE)).setDate(dateStart, DBConstants.DISPLAY, DBConstants.SCREEN_MOVE); ((DateField)this.getField(ApTrx.END_SERVICE_DATE)).setDate(dateEnd, DBConstants.DISPLAY, DBConstants.SCREEN_MOVE); this.getField(ApTrx.FINALIZATION_DATE).setValue(DateTimeField.currentTime()); if (this.getField(ApTrx.VENDOR_ID).isNull()) if (dProductCost == 0.0)
/** * Get the product category for this tour. */ public ProductCategoryModel getProductCategory() { if (this.getField(ApTrx.TOUR_ID).isNull()) return null; // No tour Record recTour = ((ReferenceField)this.getField(ApTrx.TOUR_ID)).getReference(); if (recTour == null) return null; TourHeaderModel recTourHeader = (TourHeaderModel)((ReferenceField)recTour.getField(TourModel.TOUR_HEADER_ID)).getReference(); if (recTourHeader == null) return null; ProductCategoryModel recProductCategory = (ProductCategoryModel)((ReferenceField)recTourHeader.getField(TourHeaderModel.PRODUCT_CAT_ID)).getReference(); return recProductCategory; } /**
this.getField(ApTrx.AP_TRX_TYPE_ID).setValue(ApTrx.AP_TRX_TYPE); if (iProductTypeID == ProductTypeModel.AIR_ID) this.getField(ApTrx.AP_TRX_TYPE_ID).setValue(ApTrx.TICKET_TRX_TYPE); this.addNew(); recApTrx = (ApTrx)this.getTable().getCurrentTable().getRecord(); recApTrx.getField(ApTrx.TOUR_ID).moveFieldToThis(fldTourID); recApTrx.getField(ApTrx.VENDOR_ID).moveFieldToThis(recVendor.getField(Vendor.ID)); recApTrx.getField(ApTrx.PRODUCT_TYPE_ID).setValue(iProductTypeID); TrxStatus recTrxStatus = (TrxStatus)((ReferenceField)recApTrx.getField(ApTrx.TRX_STATUS_ID)).getReferenceRecord(); int iTrxStatusID = recTrxStatus.getTrxStatusID(TransactionType.ACCTPAY, ApTrx.AP_TRX_FILE, ApTrx.DEP_ESTIMATE); recApTrx.getField(ApTrx.TRX_STATUS_ID).setValue(iTrxStatusID); recApTrx.add(); Object bookmark = recApTrx.getLastModified(DBConstants.DATA_SOURCE_HANDLE);
if (recApTrx.getField(ApTrx.AMOUNT_SELECTED).getValue() == 0) continue; // Not selected if (dCheckBalance <= 0) double dAmountSelected = recApTrx.getField(ApTrx.AMOUNT_SELECTED).getValue(); double dInvoiceAmount = recApTrx.getField(ApTrx.INVOICE_AMOUNT).getValue(); double dInvoiceAmountUSD = recApTrx.getField(ApTrx.INVOICE_LOCAL).getValue(); double dInvoiceBalance = recApTrx.getField(ApTrx.INVOICE_BALANCE).getValue(); double dInvoiceBalanceUSD = recApTrx.getField(ApTrx.INVOICE_BALANCE_LOCAL).getValue(); recApTrx.getField(ApTrx.INVOICE_LOCAL).setValue((Math.floor(dInvoiceAmount * dExchangeRate * 100 + 0.5)) / 100); recApTrx.getField(ApTrx.AMOUNT_SELECTED).setValue(Math.max(0, dNewBalance)); // Don't select P/P recApTrx.getField(ApTrx.INVOICE_BALANCE).setValue(dNewBalance); recApTrx.getField(ApTrx.INVOICE_BALANCE_LOCAL).setValue(dNewBalanceUSD); int iOrigApStatus = (int)recApTrx.getField(ApTrx.TRX_STATUS_ID).getValue(); if (dNewBalance <= 0) TrxStatus recTrxStatus = (TrxStatus)((ReferenceField)recApTrx.getField(ApTrx.TRX_STATUS_ID)).getReference(); if (recTrxStatus != null) int iNewTrxStatus = recTrxStatus.getTrxStatusID(TransactionType.ACCTPAY, ApTrx.AP_TRX_FILE, strPaidStatus); if (iNewTrxStatus > 0) recApTrx.getField(ApTrx.TRX_STATUS_ID).setValue(iNewTrxStatus); if (!recApTrx.getField(ApTrx.DRAFT_VENDOR_ID).isNull()) int iVendorID = (int)recApTrx.getField(ApTrx.DRAFT_VENDOR_ID).getValue(); recApTrx.getField(ApTrx.DRAFT_VENDOR_ID).moveFieldToThis(recApTrx.getField(ApTrx.VENDOR_ID));
/** * AddMasterListeners Method. */ public void addMasterListeners() { super.addMasterListeners(); this.getField(ApTrx.TRX_STATUS_ID).addListener(new UpdateActiveTrxStatus(this.getField(ApTrx.ACTIVE_TRX))); this.getField(ApTrx.DEPARTURE_DATE).addListener(new GetDepartureDateHandler((TourField)this.getField(ApTrx.TOUR_ID))); this.addListener(new NoDeleteModifyHandler(true, false)); Record recApControl = null; RecordOwner recordOwner = this.findRecordOwner(); if (recordOwner != null) recApControl = (Record)recordOwner.getRecord(ApControl.AP_CONTROL_FILE); if (recApControl == null) { recApControl = new ApControl(recordOwner); this.addListener(new FreeOnFreeHandler(recApControl)); } if (recApControl.getField(ApControl.AUTO_AP_CODE).getState() == true) this.addListener(new MoveIDToCodeHandler((String)null)); this.addListener(new ApTrxStatusHandler(null)); } /**
try { recApTrx.edit(); TrxStatus recTrxStatus = (TrxStatus)((ReferenceField)recApTrx.getField(ApTrx.TRX_STATUS_ID)).getReference(); String strPaidStatus = PaymentHistory.PREPAYMENT_DIST; if (recTrxStatus != null) TransactionType recTransactionType = (TransactionType)recordOwner.getRecord(TransactionType.TRANSACTION_TYPE_FILE); recTransactionType.getTrxTypeID(TransactionType.ACCTPAY, PaymentHistory.PAYMENT_HISTORY_FILE, strPaidStatus, PaymentHistory.DIST_TYPE); BaseField fldVendorID = recApTrx.getField(ApTrx.VENDOR_ID); double dExchange = 1; if ((recApTrx.getField(ApTrx.INVOICE_LOCAL).getValue() != 0) && (recApTrx.getField(ApTrx.INVOICE_AMOUNT).getValue() != 0)) dExchange = recApTrx.getField(ApTrx.INVOICE_LOCAL).getValue() / recApTrx.getField(ApTrx.INVOICE_AMOUNT).getValue(); BaseField fldTrxID = recApTrx.getField(ApTrx.ID); double dDistributedAmount = -recordOwner.getRecord(Vendor.VENDOR_FILE).getField(Vendor.AMOUNT_SELECTED).getValue(); if (-recApTrx.getField(ApTrx.INVOICE_BALANCE).getValue() < -dDistributedAmount) dDistributedAmount = recApTrx.getField(ApTrx.INVOICE_BALANCE).getValue(); // Negative double dBalance = recApTrx.getField(ApTrx.INVOICE_BALANCE).getValue(); // Negative double dStartBalanceUSD = recApTrx.getField(ApTrx.INVOICE_BALANCE_LOCAL).getValue(); // Negative recApTrx.getField(ApTrx.INVOICE_BALANCE).setValue(dBalance); recApTrx.getField(ApTrx.INVOICE_BALANCE_LOCAL).setValue(dBalanceUSD); int iOrigApStatus = (int)recApTrx.getField(ApTrx.TRX_STATUS_ID).getValue(); int iNewTrxStatus = -1; if (dBalance == 0) recApTrx.getField(ApTrx.TRX_STATUS_ID).setValue(iNewTrxStatus);
this.getField(ApTrx.DESCRIPTION).setString(DBConstants.BLANK); ((DateField)this.getField(ApTrx.START_SERVICE_DATE)).setData(null); ((DateField)this.getField(ApTrx.END_SERVICE_DATE)).setData(null); this.getField(ApTrx.DEPARTURE_ESTIMATE).setValue(0.00); this.getField(ApTrx.DEPARTURE_ESTIMATE_LOCAL).setValue(0.00); if (!recBookingDetail.getField(BookingDetailModel.AP_TRX_ID).equals(this.getField(ApTrx.ID))) bProcessThisRecord = false; // If this is already tacked to another ApTrx, skip it. if (!this.getField(ApTrx.TOUR_ID).equals(recBookingDetail.getField(BookingDetailModel.TOUR_ID))) break; if (this.getField(ApTrx.VENDOR_ID).compareTo(recBookingDetail.getField(BookingDetailModel.VENDOR_ID)) != 0) break; if (recVendor.getEditMode() == DBConstants.EDIT_CURRENT) if (OperationTypeField.LIKE_TOGETHER_CODE.equalsIgnoreCase(recVendor.getField(Vendor.OPERATION_TYPE_CODE).toString())) if (this.getField(ApTrx.PRODUCT_TYPE_ID).compareTo(recBookingDetail.getField(BookingDetailModel.PRODUCT_TYPE_ID)) != 0) break; // Each A/P Trx contains all detail items in this product type ((BaseField)recBookingDetail.getField(BookingDetailModel.AP_TRX_ID)).moveFieldToThis(this.getField(ApTrx.ID)); if (recBookingDetail.getEditMode() == DBConstants.EDIT_IN_PROGRESS)
return DBConstants.NORMAL_RETURN; TrxStatus recTrxStatus = (TrxStatus)((ReferenceField)recApTrxNew.getField(ApTrx.TRX_STATUS_ID)).getReferenceRecord(); int iTrxStatus = recTrxStatus.getTrxStatusID(TransactionType.ACCTPAY, ApTrx.AP_TRX_FILE, ApTrx.PREPAYMENT_REQUEST); if (recApTrxNew.getEditMode() != DBConstants.EDIT_ADD) if (recApTrxNew.getField(ApTrx.TRX_STATUS_ID).getValue() != iTrxStatus) return DBConstants.ERROR_RETURN; // Prepayment request probably already paid! recApTrxNew.getField(ApTrx.TRX_STATUS_ID).setValue(iTrxStatus); recApTrxNew.getField(ApTrx.VENDOR_ID).setValue(iVendorID); PrepaymentAcctHandler listener = null; recApTrxNew.getField(ApTrx.TOUR_ID).addListener(listener = new PrepaymentAcctHandler(null)); recApTrxNew.getField(ApTrx.TOUR_ID).setValue(iTourID); recApTrxNew.getField(ApTrx.TOUR_ID).removeListener(listener, true); ((DateField)recApTrxNew.getField(ApTrx.START_SERVICE_DATE)).setDate(dateStartService, bDisplayOption, DBConstants.SCREEN_MOVE); BaseApplication application = (BaseApplication)recApTrx.getTask().getApplication(); String strPrepaymentFor = application.getResources(ResourceConstants.ACCTPAY_RESOURCE, true).getString("Prepayment for"); recApTrxNew.getField(ApTrx.DESCRIPTION).setString(strPrepaymentFor + ' ' + strDesc); recApTrxNew.getField(ApTrx.INVOICE_AMOUNT).setValue(dAmount); recApTrxNew.getField(ApTrx.AMOUNT_SELECTED).setValue(dAmount); recApTrxNew.getField(ApTrx.PREPAYMENT_AP_TRX_ID).setString(bookmark.toString());
else this.getField(ApTrx.TOUR_ID).moveFieldToThis((BaseField)recBookingDetail.getField(BookingDetailModel.TOUR_ID)); this.getField(ApTrx.VENDOR_ID).moveFieldToThis(recVendor.getField(Vendor.ID)); if (OperationTypeField.LIKE_TOGETHER_CODE.equalsIgnoreCase(recVendor.getField(Vendor.OPERATION_TYPE_CODE).toString())) this.getField(ApTrx.PRODUCT_TYPE_ID).moveFieldToThis((BaseField)recBookingDetail.getField(BookingDetailModel.PRODUCT_TYPE_ID)); if ((this.seek(">=")) && (this.getField(ApTrx.TOUR_ID).equals(recBookingDetail.getField(BookingDetailModel.TOUR_ID))) && (this.getField(ApTrx.VENDOR_ID).equals(recVendor.getField(Vendor.ID)))) ((BaseField)recBookingDetail.getField(BookingDetailModel.AP_TRX_ID)).moveFieldToThis(this.getField(ApTrx.ID));
Vendor recVendor = null; if ((recApTrx == null) || ((recBookingDetail != null) && (recBookingDetail.getField(BookingDetail.VENDOR_ID).compareTo(recApTrx.getField(ApTrx.VENDOR_ID)) > 0))) bAddNewVoucher = true; else || ((recApTrx != null) && (recBookingDetail.getField(BookingDetail.VENDOR_ID).compareTo(recApTrx.getField(ApTrx.VENDOR_ID)) < 0))) bAddNewVoucher = false; else recVendor = (Vendor)((ReferenceField)recApTrx.getField(ApTrx.VENDOR_ID)).getReference(); if (OperationTypeField.ALL_TOGETHER_CODE.equalsIgnoreCase(recVendor.getField(Vendor.OPERATION_TYPE_CODE).toString())) bAddNewVoucher = false; else if (OperationTypeField.INDIVIDUALLY_CODE.equalsIgnoreCase(recVendor.getField(Vendor.OPERATION_TYPE_CODE).toString())) if (recBookingDetail.getField(BookingDetail.AP_TRX_ID).compareTo(recApTrx.getField(ApTrx.ID)) != 0) bAddNewVoucher = true; else if (recBookingDetail.getField(BookingDetail.PRODUCT_TYPE_ID).compareTo(recApTrx.getField(ApTrx.PRODUCT_TYPE_ID)) > 0) bAddNewVoucher = true; else
try { this.addNew(); this.getField(PaymentHistory.AP_TRX_ID).moveFieldToThis(recApTrx.getField(ApTrx.ID)); this.getField(PaymentHistory.TRX_STATUS_ID).setValue(iTrxStatusID); this.getField(PaymentHistory.TRX_DATE).setValue(DateTimeField.todaysDate());