static function save($data, &$errors) { $period = DataObjectFactory::Factory('GLPeriod'); if ($period->loadPeriod($data['purchase_date'])) { $data['purchase_period_id'] = $period->id; } else { $errors[] = 'No period defined for this purchase date'; return; } $data['wd_value'] = $data['purchase_price']; $asset = DataObject::Factory($data, $errors, 'Asset'); if (count($errors) === 0 && $asset->save()) { $data['armaster_id'] = $asset->id; $data['transaction_date'] = $data['purchase_date']; $data['value'] = $data['purchase_price']; $data['to_group_id'] = $data['argroup_id']; $data['to_location_id'] = $data['arlocation_id']; $artransaction = DataObjectFactory::Factory('ARTransaction'); $artransaction = $artransaction->add($data, $artransaction->addition(), $errors); $result = false; if ($artransaction && count($errors) === 0) { $result = $artransaction->save(); } if ($result) { $gltrans = GLTransaction::makeFromAssetTransaction($artransaction, $asset, $errors); } if ($result === FALSE || count($errors) > 0 || GLTransaction::saveTransactions($gltrans, $errors) === FALSE) { $errors[] = 'Failed to create new Asset'; } } }