public static function makeHeader($data, $do, &$errors) { if (strtotime(fix_date($data['order_date'])) > strtotime(fix_date(date(DATE_FORMAT)))) { $errors[] = 'Order Date cannot be in the future'; return false; } if (!isset($data['id']) || $data['id'] == '') { // $generator = new OrderNumberHandler(); $generator = new UniqueNumberHandler(false, $data['type'] != 'T'); $data['order_number'] = $generator->handle(DataObjectFactory::Factory($do)); $data['status'] = 'N'; $user = getCurrentUser(); $data['raised_by'] = $user->username; } //determine the base currency $currency = DataObjectFactory::Factory('Currency'); $currency->load($data['currency_id']); $data['rate'] = $currency->rate; //determine the twin currency $glparams = DataObjectFactory::Factory('GLParams'); $twin_currency = DataObjectFactory::Factory('Currency'); $twin_currency->load($glparams->base_currency()); $data['twin_rate'] = $twin_currency->rate; $data['twin_currency_id'] = $twin_currency->id; return DataObject::Factory($data, $errors, $do); }
static function Factory($data, &$errors, $do) { if (!isset($data['id']) || $data['id'] == '') { $generator = new UniqueNumberHandler(); $model = new $do(); $model->identifierField = 'job_no'; $data[$model->identifierField] = $generator->handle($model); } return parent::Factory($data, $errors, $do); }
/** * Build the invoice header, as if from a submitted form * */ public static function makeHeader($data, $do, &$errors) { if (!isset($data['id']) || $data['id'] == '') { $generator = new UniqueNumberHandler(false, $data['transaction_type'] != 'T'); $data['invoice_number'] = $generator->handle(DataObjectFactory::Factory($do)); $data['status'] = 'N'; } //determine the base currency $currency = DataObjectFactory::Factory('Currency'); $currency->load($data['currency_id']); $data['rate'] = $currency->rate; //determine the twin currency $glparams = DataObjectFactory::Factory('GLParams'); $twin_currency = DataObjectFactory::Factory('Currency'); $twin_currency->load($glparams->twin_currency()); $data['twin_rate'] = $twin_currency->rate; $data['twin_currency_id'] = $twin_currency->id; $terms = DataObjectFactory::Factory('PaymentTerm'); $terms->load($data['payment_term_id']); $today = date(DATE_FORMAT); if (empty($data['invoice_date'])) { $data['invoice_date'] = $today; } if ($data['transaction_type'] == 'I') { $data['due_date'] = calc_due_date($data['invoice_date'], $terms->basis, $terms->days, $terms->months); } else { if (fix_date($data['due_date']) < fix_date($today)) { $data['due_date'] = $today; } } $data['original_due_date'] = $data['due_date']; // build the lines - header totals are built from the lines // so initialise the values to zero $sums = array('net_value', 'tax_value', 'gross_value'); $prefixes = array('', 'twin_', 'base_'); foreach ($prefixes as $prefix) { foreach ($sums as $sum) { $data[$prefix . $sum] = '0.00'; } } return DataObject::Factory($data, $errors, $do); }
public static function Factory($data, &$errors = array(), $do_name = 'Employee') { $unique_field = 'employee_number'; $do = DataObjectFactory::Factory($do_name); if (empty($data[$do->idField]) && empty($data[$unique_field])) { $do->identifierField = $unique_field; $generator = new UniqueNumberHandler(); $data[$unique_field] = $generator->handle($do); } return parent::Factory($data, $errors, $do); }