Skip to main content
Previous sectionNext section

Calling CompleteOrder

Now that we have modified the CompleteOrder method, we have one more change to make. Currently, it is called from within the OnPage method of the TicketConfirm page.

Unfortunately, this will not work. To understand why, let's spend a moment examining how a page request gets processed.

—TicketConfirm.OnPage—
TicketConfirm.OnPage
ClassMethod OnPage() As %Status
{
    Write "<HTML>",$C(13,10)
    Write "<HEAD>",$C(13,10)
    Write "</HEAD>",$C(13,10)
    Write "<BODY>",$C(13,10)
    If (%session.IsDefined("OrderID")) {
        Do ..CompleteOrder(%session.Data("OrderID"))
        Write "Thank you for using Caché Cinema!<br>",$C(13,10)
        If ($G(%request.Data("OrderEmail",1)) '=""){
            Do ..SendEmail( 
                    %request.Data("OrderEmail",1), 
                    "Your tickets have been ordered"
                    )
        } 
    }
    Else {
        Write "Your order expired before it was completed."
    } 
    Write "</BODY>",$C(13,10)
    Write "</HTML>",$C(13,10),!
    Quit $$$OK
}
Copy code to clipboard