private function updateOrderProducts($products)
{
if (!$this->productsChanged) {
return;
}
$validOrderProductIds = [];
foreach ($products as $var) {
/* @var $var OrderProduct */
if ($var->getIsNewRecord()) {
$var->order_id = $this->id;
}
if ($var->save()) {
$validOrderProductIds[] = $var->id;
}
}
$criteria = new CDbCriteria();
$criteria->addCondition('order_id = :order_id');
$criteria->params = [':order_id' => $this->id];
$criteria->addNotInCondition('id', $validOrderProductIds);
OrderProduct::model()->deleteAll($criteria);
}