/** * @param RM_Unit_Row $original * @param RM_Unit_Row $copy * @return void */ function copyInformation(RM_Unit_Row $original, RM_Unit_Row $copy) { $unitExtrasModel = new RM_UnitExtras(); $unitExtras = $unitExtrasModel->getByUnit($original); foreach ($unitExtras as $unitExtra) { $unitExtrasModel->insert(array('unit_id' => $copy->getId(), 'extra_id' => $unitExtra->extra_id)); } }
/** * Returns the column/value data as an array and parse all assigned units * in csv format in 'units' field. * * @return array */ public function toArray($iso = null) { $dataRow = parent::toArray(); if ($this->global == 1) { $dataRow['units'] = array(0); } else { $unitExtrasModel = new RM_UnitExtras(); $unitIDs = array(); $unitExtras = $unitExtrasModel->getByExtra($this); foreach ($unitExtras as $unitExtra) { $unitIDs[] = $unitExtra->unit_id; } $dataRow['units'] = implode(',', $unitIDs); } $dataRow['name'] = $this->getName($iso); return $dataRow; }
/** * @param request data price rows information (if 'id'=0 this is a new row) * @see modules/extras/js/edit.js * @return json json array information: success or failure */ function updateJsonAction() { $dataJson = $this->_getParam('data', '[]'); $iso = $this->_getParam('iso', RM_Environment::getInstance()->getLocale()); $data = Zend_Json::decode($dataJson); $unitExtrasModel = new RM_UnitExtras(); $model = new RM_Extras(); foreach ($data as $row) { if (isset($row['name'])) { $row[$iso] = $row['name']; unset($row['name']); } $unitIDs = explode(',', $row['units']); unset($row['units']); if ($row['id'] == 0) { unset($row['id']); $extraID = $model->insert($row); $dbRow = $model->find($extraID)->current(); } else { $dbRow = $model->find($row['id'])->current(); if ($dbRow == null) { continue; } foreach ($row as $key => $value) { $dbRow->{$key} = $value; } $dbRow->save(); } $unitExtrasModel->insertRows($dbRow, $unitIDs); } return array('data' => array('success' => true)); }