managed implementation in class zbp_traveltp unique;
strict ( 2 );
with draft;
define behavior for ZR_TravelTP alias Travel
persistent table ztravel_a
draft table ztravel_d
lock master
total etag LastChangedAt
authorization master ( instance )
{
create;
update;
delete;
association _Bookings { create; with draft; }
static action ShowTestMessage;
action CancelTravel result [1] $self;
action MaintainBookingFee parameter ZA_BookingFee result [1] $self;
draft action Activate optimized;
draft action Discard;
draft action Edit;
draft determine action Prepare
{
validation ValidateDates;
validation ValidateCustomer;
validation ValidateAgency;
}
draft action Resume;
validation ValidateDates on save { create; }
validation ValidateCustomer on save { create; }
validation ValidateAgency on save { create; }
determination DetermineStatus on modify { create; }
determination DetermineTravelId on modify { create; }
field ( readonly, numbering : managed ) TravelUuid;
field ( mandatory : create ) AgencyId, BeginDate, CustomerId, Description, EndDate;
field ( readonly : update ) AgencyId, BeginDate, CustomerId, Description, EndDate;
field ( readonly ) CreatedAt, CreatedBy, LastChangedAt, LastChangedBy, Status, TravelId;
mapping for ztravel_a corresponding
{
AgencyId = agency_id;
BeginDate = begin_date;
BookingFee = booking_fee;
CreatedAt = created_at;
CreatedBy = created_by;
CurrencyCode = currency_code;
CustomerId = customer_id;
Description = description;
EndDate = end_date;
LastChangedAt = last_changed_at;
LastChangedBy = last_changed_by;
Status = status;
TotalPrice = total_price;
TravelId = travel_id;
TravelUuid = travel_uuid;
}
}
define behavior for ZR_BookingTP alias Booking
persistent table zbooking_a
lock dependent by _Travel
draft table zbooking_d
authorization dependent by _Travel
{
update;
delete;
association _Travel { with draft; }
field ( readonly, numbering : managed ) BookingUuid;
field ( readonly ) TravelUuid;
mapping for zbooking_a corresponding
{
BookingDate = booking_Date;
BookingId = booking_id;
BookingUuid = booking_uuid;
CarrierId = carrier_id;
ConnectionId = connection_id;
CurrencyCode = currency_code;
FlightDate = flight_date;
FlightPrice = flight_price;
TravelUuid = Travel_uuid;
}
}