src/Entity/Compilation.php line 8

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\CompilationRepository;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use App\Entity\IndexEntry;
  6. class Compilation
  7. {
  8.     /**
  9.      * Set volume
  10.      *
  11.      * @param integer $volume
  12.      */
  13.     public function setVolume($volume){
  14.         $this->volume $volume;
  15.         $this->updateTitle();
  16.     }
  17.     /**
  18.     * Set fascicle
  19.     *
  20.     * @param integer $fascicle
  21.     */
  22.     public function setFascicle($fascicle){
  23.         $this->fascicle $fascicle;
  24.         $this->updateTitle();
  25.     }
  26.     
  27.     protected function updateTitle(){
  28.       $this->title $this->numberToRoman($this->volume) . ($this->fascicle ' ' $this->fascicle '');
  29.     }
  30.     /**
  31.      * @var integer $id
  32.      */
  33.     private $id;
  34.     /**
  35.      * @var integer $volume
  36.      */
  37.     private $volume;
  38.     /**
  39.      * @var integer $fascicle
  40.      */
  41.     private $fascicle;
  42.     /**
  43.      * @var text $title
  44.      */
  45.     private $title;
  46.     /**
  47.      * @var text $collection
  48.      */
  49.     private $collection;
  50.     /**
  51.      * @var text $item
  52.      */
  53.     private $item;
  54.     /**
  55.      * @var text $short
  56.      */
  57.     private $short;
  58.     /**
  59.      * @var date $start
  60.      */
  61.     private $start;
  62.     /**
  63.      * @var date $end
  64.      */
  65.     private $end;
  66.     /**
  67.      * @var datetime $publication
  68.      */
  69.     private $publication;
  70.     /**
  71.      * @var Papyrillio\BeehiveBundle\Entity\Correction
  72.      */
  73.     private $corrections;
  74.     private $indexEntries;
  75.     public function __construct()
  76.     {
  77.         $this->corrections = new \Doctrine\Common\Collections\ArrayCollection();
  78.         $this->indexEntries = new \Doctrine\Common\Collections\ArrayCollection();
  79.     }
  80.     
  81.     /**
  82.      * Get id
  83.      *
  84.      * @return integer 
  85.      */
  86.     public function getId()
  87.     {
  88.         return $this->id;
  89.     }
  90.     /**
  91.      * Get fascicle
  92.      *
  93.      * @return integer 
  94.      */
  95.     public function getFascicle()
  96.     {
  97.         return $this->fascicle;
  98.     }
  99.     /**
  100.      * Set title
  101.      *
  102.      * @param text $title
  103.      */
  104.     public function setTitle($title)
  105.     {
  106.         $this->title $title;
  107.     }
  108.     /**
  109.      * Get title
  110.      *
  111.      * @return text 
  112.      */
  113.     public function getTitle()
  114.     {
  115.         return $this->title;
  116.     }
  117.     /**
  118.      * Set collection
  119.      *
  120.      * @param text $collection
  121.      */
  122.     public function setCollection($collection)
  123.     {
  124.         $this->collection $collection;
  125.     }
  126.     /**
  127.      * Get collection
  128.      *
  129.      * @return text 
  130.      */
  131.     public function getCollection()
  132.     {
  133.         return $this->collection;
  134.     }
  135.     /**
  136.      * Set item
  137.      *
  138.      * @param text $item
  139.      */
  140.     public function setItem($item)
  141.     {
  142.         $this->item $item;
  143.     }
  144.     /**
  145.      * Get item
  146.      *
  147.      * @return text 
  148.      */
  149.     public function getItem()
  150.     {
  151.         return $this->item;
  152.     }
  153.     /**
  154.      * Set short
  155.      *
  156.      * @param text $short
  157.      */
  158.     public function setShort($short)
  159.     {
  160.         $this->short $short;
  161.     }
  162.     /**
  163.      * Get short
  164.      *
  165.      * @return text 
  166.      */
  167.     public function getShort()
  168.     {
  169.         return $this->short;
  170.     }
  171.     /**
  172.      * Get volume
  173.      *
  174.      * @return integer 
  175.      */
  176.     public function getVolume()
  177.     {
  178.         return $this->volume;
  179.     }
  180.     /**
  181.      * Set start
  182.      *
  183.      * @param date $start
  184.      */
  185.     public function setStart($start)
  186.     {
  187.         $this->start $start;
  188.     }
  189.     /**
  190.      * Get start
  191.      *
  192.      * @return date 
  193.      */
  194.     public function getStart()
  195.     {
  196.         return $this->start;
  197.     }
  198.     /**
  199.      * Set end
  200.      *
  201.      * @param date $end
  202.      */
  203.     public function setEnd($end)
  204.     {
  205.         $this->end $end;
  206.     }
  207.     /**
  208.      * Get end
  209.      *
  210.      * @return date 
  211.      */
  212.     public function getEnd()
  213.     {
  214.         return $this->end;
  215.     }
  216.     /**
  217.      * Set publication
  218.      *
  219.      * @param datetime $publication
  220.      */
  221.     public function setPublication($publication)
  222.     {
  223.         $this->publication $publication;
  224.     }
  225.     /**
  226.      * Get publication
  227.      *
  228.      * @return datetime 
  229.      */
  230.     public function getPublication()
  231.     {
  232.         return $this->publication;
  233.     }
  234.     /**
  235.      * Add corrections
  236.      *
  237.      * @param Papyrillio\BeehiveBundle\Entity\Correction $corrections
  238.      */
  239.     public function addCorrection(\App\Entity\Correction $corrections)
  240.     {
  241.         $this->corrections[] = $corrections;
  242.     }
  243.     /**
  244.      * Get corrections
  245.      *
  246.      * @return Doctrine\Common\Collections\Collection 
  247.      */
  248.     public function getCorrections()
  249.     {
  250.         return $this->corrections;
  251.     }
  252.     public function addIndexEntry(\App\Entity\IndexEntry $indexEntry)
  253.     {
  254.         $this->indexEntries[] = $indexEntry;
  255.     }
  256.     public function getIndexEntries()
  257.     {
  258.         return $this->indexEntries;
  259.     }
  260.     
  261.     protected function numberToRoman($num)
  262.     {
  263.        // Make sure that we only use the integer portion of the value
  264.        $n intval($num);
  265.        $result '';
  266.    
  267.        // Declare a lookup array that we will use to traverse the number:
  268.        $lookup = array('M' => 1000'CM' => 900'D' => 500'CD' => 400,
  269.        'C' => 100'XC' => 90'L' => 50'XL' => 40,
  270.        'X' => 10'IX' => 9'V' => 5'IV' => 4'I' => 1);
  271.    
  272.        foreach ($lookup as $roman => $value
  273.        {
  274.            // Determine the number of matches
  275.            $matches intval($n $value);
  276.    
  277.            // Store that many characters
  278.            $result .= str_repeat($roman$matches);
  279.    
  280.            // Substract that from the number
  281.            $n $n $value;
  282.        }
  283.    
  284.        // The Roman numeral should be built, return it
  285.        return $result;
  286.     } // http://www.go4expert.com/forums/showthread.php?t=4948
  287. }