Esempio n. 1
0
 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);
 }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
 /**
  *  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);
 }
Esempio n. 4
0
 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);
 }