You can do this easily with an Observer.
Firstly, I would add this to your config.xml:
<config>
...
<global>
...
<events>
<sales_order_save_before>
<observers>
<module_order_save_before>
<type>singleton</type>
<class>module/observer</class>
<method>orderSaveBefore</method>
</module_order_save_before>
</observers>
</sales_order_save_before>
</events>
...
</global>
...
</config>
If you are calculating the values of these 2 columns, you can do the following in your Observer.
Observer.php:
public function orderSaveBefore($obs) {
$event = $obs->getEvent();
$order = $event->getOrder();
$order->setPercentorder(value);
$order->setCommission(value);
return $this;
}
If however, you're relying on input from a form that you can attach to with an event, you can do something similar to this:
Observer.php
public function orderSaveBefore($obs) {
$event = $obs->getEvent();
$order = $event->getOrder();
$request = Mage::app()->getFrontController()->getRequest();
$percentorder = $request->getParam('percentorder');
$commission = $request->getParam('commission');
$order->setPercentorder(value);
$order->setCommission(value);
return $this;
}
If you hook into the models save_before event, you can set the values for the columns before the order actually gets saved, reducing the cost of having to use save() again.