I have created an absence request form for our company using http://alecpojidaev.wordpress.com/2008/12/30/infopath-codeless-programming-walkthrough-2/ great blog to calculate the difference between dates (using an XML file to exclude holidays and weekends), QRules to submit total requested days to a SharePoint list that holds the number of total days an employee has remaining to request. This all works great.
I'm struggling to wrap my head around an ideal method of handling cancellations, changes, etc. For instance, once the user submits the form, I have QRules update the list of remaining days right away. What if the user wants to cancel? What if they merely want to adjust the days they requested?
I considered having a workflow subtract the requested days from the remaining days once the form was approved, but that still doesn't address how a user would change their request . . . or even cancel their request.
Have any of you ever developed a solution like this in InfoPath?