Пример #1
0
 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';
         }
     }
 }