static function depreciateAll(&$errors) { $assets = new AssetCollection(DataObjectFactory::Factory('Asset')); $sh = new SearchHandler($assets, false); $sh->addConstraint(new Constraint('disposal_date', 'is', 'NULL')); $assets->load($sh); if ($assets) { $progressbar = new progressBar('depreciation'); $callback = function ($asset, $key) use(&$errors) { assetHandling::depreciateAsset($asset, $errors); if (count($errors) > 0) { return FALSE; } }; if ($progressbar->process($assets, $callback) === FALSE) { $errors[] = 'Error running depreciation'; } } else { $errors[] = 'Failed to load assets'; } }
public function save() { $flash = Flash::Instance(); $db = DB::Instance(); $db->StartTrans(); $errors = array(); assetHandling::save($this->_data['Asset'], $errors); if (count($errors) === 0 && $db->CompleteTrans()) { if (strtolower($this->_data['saveform']) == 'save') { sendTo($this->name, 'index', $this->_modules); } else { sendTo($this->name, 'new', $this->_modules); } } $db->FailTrans(); $flash->addErrors($errors); $this->_data['id'] = ''; $this->refresh(); }
static function yearEnd($period, &$errors) { assetHandling::yearEnd($errors); $period_ids = $period->getIdsYTD($period->period, $period->year); $startperiod = $period->getNewStartPeriod($errors); $result = $startperiod; $glbalance = DataObjectFactory::Factory('GLBalance'); $newbalances = array(); $balances = new GLBalanceCollection($glbalance); $balances->getYearEndBalances($period_ids, 'P'); $glparam = DataObjectFactory::Factory('GLParams'); $placcount_id = $glparam->retained_profits_account(); $plcentre_id = $glparam->balance_sheet_cost_centre(); $plbalance = 0; foreach ($balances as $balance) { if (count($errors) > 0) { $result = false; break; } $plbalance = $balance->value; } $balances = new GLBalanceCollection($glbalance); $balances->getYearEndBalances($period_ids, 'B'); foreach ($balances as $balance) { if (count($errors) > 0) { $result = false; break; } $data['glperiods_id'] = $startperiod->id; $data['glaccount_id'] = $balance->glaccount_id; $data['glcentre_id'] = $balance->glcentre_id; $data['value'] = $balance->value; if ($balance->glaccount_id == $placcount_id && $balance->glcentre_id == $plcentre_id) { $data['value'] += $plbalance; $plbalance = 0; } $newbalances[] = DataObject::Factory($data, $errors, $balance); } if ($result && count($newbalances) > 0) { foreach ($newbalances as $balance) { if ($result) { $result = $balance->save(); } } } if ($plbalance != 0) { $data['glperiods_id'] = $startperiod->id; $data['glaccount_id'] = $placcount_id; $data['glcentre_id'] = $plcentre_id; $data['value'] = $plbalance; $balance = DataObject::Factory($data, $errors, 'GLBalance'); if ($balance) { if (!$balance->save()) { $errors[] = 'Failed to create P+L balance'; } } } }