static function disposal($assetid, $data, &$errors) { $asset = DataObjectFactory::Factory('Asset'); if ($asset->load($assetid)) { $asset->disposal_date = $data['disposal_date']; $asset->disposal_value = $data['disposal_value']; if ($asset->save()) { unset($data['id']); $gltrans = array(); $gltrans = GLTransaction::makeFromAsset($asset, $asset->purchase_price, 'disposal', $errors); if (count($errors) === 0 && count($gltrans) > 0) { $gltrans = array_merge($gltrans, GLTransaction::makeFromAsset($asset, $asset->td_depn, 'disposal-depreciation', $errors)); } if (count($errors) === 0 && count($gltrans) > 0) { $data['armaster_id'] = $asset->id; $data['value'] = $data['disposal_value']; $data['transaction_date'] = $data['disposal_date']; $data['from_group_id'] = $asset->argroup_id; $data['from_location_id'] = $asset->arlocation_id; $artransaction = DataObjectFactory::Factory('ARTransaction'); $artransaction = $artransaction->add($data, $artransaction->disposal(), $errors); $result = false; if ($artransaction && count($errors) === 0) { $result = $artransaction->save(); } if ($result) { $gltrans = array_merge($gltrans, GLTransaction::makeFromAssetTransaction($artransaction, $asset, $errors)); } if ($result === FALSE || count($errors) > 0 || GLTransaction::saveTransactions($gltrans, $errors) === FALSE) { $errors[] = 'Failed to create GL entry for asset disposal'; } } } else { $errors[] = 'Failed to update asset disposal date'; } } else { $errors[] = 'Failed to load asset'; } }