I have an order and orderitems table. An Order can have multiple
orderitems. I have used transfer to create all my getters and setters.
when I receive the order I use populatebean to create the order and I
tried using populatebean to add the order items, but what I get in the
orderitems table is all the orderitems in one row. I know I can loop
through my orderitems from the post, but I would rather use
poplulatebean and have multiple rows created if possible. Any
thoughts?
<cfset order = Event.getValue("order")>
<cfdump var="#rc#">
<cfdump var="#order#">
<cfset WriteOutput(getPlugin("messageBox").renderit(true))>
<cfoutput>
<form action="?event=#Event.getValue('xehSave')#" method="post">
</cfoutput>
<table class="edit">
<cfoutput>
<tr class="even">
<td class="desc">Dept</td>
<td class="value"><input type="text" name="Dept"
value="#order.getDept()#" class="text" /></td>
</tr>
<tr class="even">
<td class="desc">Email</td>
<td class="value"><input type="text" name="Email"
value="#order.getEmail()#" class="text" /></td>
</tr>
<tr class="odd">
<td class="desc">Phone</td>
<td class="value"><input type="text" name="Phone"
value="#order.getPhone()#" class="text" /></td>
</tr>
<tr class="odd">
<td class="desc">BillingNumber</td>
<td class="value"><input type="text" name="BillingNumber"
value="#order.getBillingNumber()#" class="text" /></td>
</tr>
<tr>
<td colspan="2" class="buttonBar">
<cfif Event.getValue("xehBack","") NEQ "">
<input type="button" class="button" value="back"
onclick="location.href='?event=#Event.getValue("xehBack")#'">
</cfif>
<input type="submit" value="enter" class="button">
</td>
</tr>
</table>
<!--- Needed for update --->
<input type="hidden" name="ImageID" value="1" />
<input type="hidden" name="FileName"
value="20070905_PA_UITS__P7E7632.jpg" />
<input type="hidden" name="JobNumber" value="D18740" />
<input type="hidden" name="ImageID" value="2" />
<input type="hidden" name="FileName" value="20070905_test.jpg" />
<input type="hidden" name="JobNumber" value="D18744" />
</cfoutput>
</form>
And my Handler looks like this:
<cffunction name="doSaveOrder" access="public" returntype="void"
output="false">
<cfargument name="Event" type="coldbox.system.beans.requestContext">
<!--- PopulateBean --->
<cfset var isValidationError = 0>
<cfset var rc = Event.getCollection() />
<cfset rc.order = getPlugin("ioc").getBean("OrderManager").getOrder
( Event.getValue("OrderId","") ) />
<cfset rc.orderItem = getPlugin("ioc").getBean
("OrderManager").getOrderItems( Event.getValue("OrderId","") ) />
<!--- PopulateBean --->
<cfset getPlugin("beanFactory").populateBean(rc.order)>
<cfset getPlugin("beanFactory").populateBean(rc.orderItem)>
<!---
<cfset rc.user.setUserType(userType)>
--->
<!--- Validation Error? --->
<cfif isValidationError>
<cfset dspEditOrder(Event)>
<cfelse>
<cfset getPlugin("ioc").getBean("OrderManager").saveOrder(rc.Order)
<cfset getPlugin("ioc").getBean("OrderManager").saveItems(rc.Order,
rc.orderItem)>
<cfset setNextEvent("admin.ehOrder.dspOrders")>
</cfif>
</cffunction>