Exemple #1
0
 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';
     }
 }
Exemple #2
0
 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();
 }
Exemple #3
0
 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';
             }
         }
     }
 }