public function savejournal() { $flash = Flash::Instance(); $errors = array(); if (!$this->checkParams('Vat')) { sendBack(); } $data = $this->_data['Vat']; if ($data['value']['net'] <= 0 || $data['value']['vat'] <= 0) { $errors[] = 'Net and Vat values must be greater than zero'; } else { $glparams = DataObjectFactory::Factory('GLParams'); $vat_type = 'vat_' . $data['vat_type']; $data['vat_account'] = call_user_func(array($glparams, $vat_type)); if ($data['vat_type'] == 'input') { $data['value']['net'] = bcmul($data['value']['net'], -1); $data['value']['vat'] = bcmul($data['value']['vat'], -1); } $data['transaction_date'] = date(DATE_FORMAT); $gltransactions = GLTransaction::makeFromVATJournalEntry($data, $errors); if (count($errors) == 0 && GLTransaction::saveTransactions($gltransactions, $errors)) { $flash->addMessage('VAT Journal created OK'); sendTo($this->name, '', $this->_modules); } } $flash->addErrors($errors); $this->_data['vat_type'] = $data['vat_type']; $this->_data['glaccount_id'] = $data['glaccount_id']; $this->refresh(); }