Source for file costs.php

Documentation is available at costs.php

  1. <?php
  2. /**
  3. * User/Instrument class matrix
  4. *
  5. @author    Stuart Prescott
  6. @copyright  Copyright Stuart Prescott
  7. @license    http://opensource.org/licenses/gpl-license.php GNU Public License
  8. @version    $Id$
  9. @package    Bumblebee
  10. @subpackage DBObjects
  11. */
  12.  
  13. /** Load ancillary functions */
  14. require_once 'inc/typeinfo.php';
  15.  
  16. require_once 'inc/bb/configreader.php';
  17.  
  18. /** parent object */
  19. require_once 'inc/formslib/dbrow.php';
  20. /** uses fields */
  21. require_once 'inc/formslib/joinmatrix.php';
  22. require_once 'inc/formslib/textfield.php';
  23. require_once 'inc/formslib/currencyfield.php';
  24.  
  25. /**
  26. * User/Instrument class matrix
  27. *
  28. @package    Bumblebee
  29. @subpackage DBObjects
  30. */
  31. class ClassCost extends DBRow {
  32.  
  33.   function ClassCost($id{
  34.     $this->DBRow('userclass'$id);
  35.     $this->editable = 1;
  36.     $this->use2StepSync = 1;
  37.  
  38.     $conf ConfigReader::getInstance();
  39.  
  40.     $f new IdField('id'T_('UserClass ID'));
  41.     $f->editable 0;
  42.     $f->duplicateName 'userclass';
  43.     $this->addElement($f);
  44.     $f new TextField('name'T_('Name'));
  45.     $attrs array('size' => '48');
  46.     $f->setAttr($attrs);
  47.     $f->required 1;
  48.     $f->isValidTest 'is_nonempty_string';
  49.     $this->addElement($f);
  50.  
  51.     $f new JoinMatrix('costs''id',
  52.                        'userclass',       'id''userclass',
  53.                        'instrumentclass''id''instrumentclass',
  54.                        'classlabel'T_('Cost settings'),
  55.                        T_('Costs for each class of user corresponding to each instrument type'));
  56.     $userfield  new TextField('name'T_('User Class')T_('Classes of users'));
  57.     $instrfield new TextField('name'T_('Instrument Class')T_('Classes of instrument'));
  58.     //$instrfield->setFormat('id', '%s', array('name'), ' (%40.40s)', $classexample);
  59.     $f->addKeys($userfield,$instrfield);
  60.  
  61.     $cost new CurrencyField('costfullday',
  62.                               sprintf(T_('Full day cost (%s)'),
  63.                                   sprintf($conf->value('language''money_format''$%s')'')),
  64.                           T_('Cost of instrument use for a full day'));
  65.     $attrs array('size' => '6');
  66.     $cost->setAttr(array_merge($attrs,
  67.                     array('float' => true,
  68.                       'precision' => $conf->value('language''money_decimal_places'2))));
  69.     $f->addElement($cost);
  70.     $hoursnew TextField('hourfactor'T_('Hourly rate multiplier'),
  71.                           T_('Proportion of daily rate charged per hour'));
  72.     $attrs array('size' => '6''float' => true'precision' => 3);
  73.     $hours->setAttr($attrs);
  74.     $f->addElement($hours);
  75.     $halfsnew TextField('halfdayfactor'T_('Half-day rate multiplier'),
  76.                           T_('Proportion of daily rate charged per half-day'));
  77.     $halfs->setAttr($attrs);
  78.     $f->addElement($halfs);
  79.     $discountnew TextField('dailymarkdown'T_('Daily bulk discount %'),
  80.                           T_('Discount for each successive day\'s booking'));
  81.     $discount->setAttr($attrs);
  82.     $f->addElement($discount);
  83.     $f->colspan 2;
  84.     $f->editable 1;
  85.     //$f->joinSetup('instrumentclass', array('minspare' => 0));
  86.     $f->setKey($id);
  87.     $this->addElement($f);
  88.  
  89.     $this->fill($id);
  90.     $this->dumpheader = 'Cost object';
  91.     #preDump($this);
  92.   }
  93.  
  94.   function display({
  95.     return $this->displayAsTable();
  96.   }
  97.  

Documentation generated on Tue, 06 Mar 2007 10:01:09 +0000 by phpDocumentor 1.3.0