The ChangeQuantity Method 2
Next we determine whether we are changing the quantity of adult tickets or child tickets by examining the TicketType argument. We can then adjust the total charge stored in the TicketOrder object and store the new quantity into the AdultTickets or ChildTickets property of the TicketItem object.
—Utils.ChangeQuantity—
Utils.ChangeQuantity
ClassMethod ChangeQuantity(
ItemNum As %Integer,
TicketType As %Integer,
NewQuantity As %Integer)
{
If $data(%session.Data("Order")) {
// Open the current order object
Set ord = ##class(Cinema.TicketOrder).%OpenId(%session.Data("Order"))
// Update quantity
Set itm=ord.Items.GetAt(ItemNum)
// Determine if we are changing
// adult or child tickets
If ( TicketType = 1) {
// Adjust the total price
Set ord.Total = ord.Total +
((NewQuantity - itm.AdultTickets) * itm.Show.Theater.AdultPrice)
// Update the number of tickets
Set itm.AdultTickets = NewQuantity
}
Else {
Set ord.Total = ord.Total +
((NewQuantity - itm.ChildTickets) * itm.Show.Theater.ChildPrice)
Set itm.ChildTickets = NewQuantity
}
// ...
}
}