src/Entity/Master/Order.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Master;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\Common\Collections\Collection;
  5. use Doctrine\DBAL\Types\Types;
  6. use Doctrine\ORM\Mapping as ORM;
  7. /**
  8.  * @ORM\Table(name="eposm_m_order")
  9.  * @ORM\Entity(repositoryClass="App\Repository\Master\OrderRepository")
  10.  */
  11. class Order
  12. {    
  13.     function getIsEditable(){
  14.         if($this->status == 'inserted')
  15.             return true;
  16.         return false;
  17.     }
  18.     
  19.     function getIsDeletable(){
  20.         if($this->status == 'inserted')
  21.             return true;
  22.         return false;
  23.     }
  24.     function getDisplayItems($displayCost){
  25.         $result '<table class="table table-sm b_none m_b_none"><thead><tr><th></th><th class="td_w_130p txt_a_c"><label class="form_label m_b_none">Data attivazione</label></th><th class="td_w_130p txt_a_c"><label class="form_label m_b_none">Data scadenza</label></th>';
  26.         if($displayCost){
  27.             $result.= '<th class="td_w_100p txt_a_c"><label class="form_label m_b_none">Costo</label></th>';
  28.             $total 'Totale';
  29.         }
  30.         $result.= '</tr></thead><tbody>';
  31.         foreach($this->items as $item){
  32.             if($item->getFeature() != null)
  33.                 $result.= $item->getDisplayTableRow($displayCost);
  34.         }
  35.         foreach($this->items as $item){
  36.             if($item->getService() != null)
  37.                 $result.= $item->getDisplayTableRow($displayCost);
  38.         }
  39.         if($displayCost)
  40.             $result.= '<tr><th colspan="3"><label class="form_label m_b_none">'.$total.'</label></th><th class="txt_a_c">'.$this->getTotalAmount().'</th></tr>';
  41.         $result.= '</tbody></table>';
  42.         return $result;
  43.     }
  44.     function getDisplayStatus(){
  45.         
  46.         switch($this->status){
  47.             case 'inserted'
  48.                 $result '<ul class="skills">
  49.                     <li data-percent="100"><span>Ordine inserito</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  50.                     <li data-percent="100"><span>Contratto inviato</span><div class="progress skills-animated remove width_100"><div class="progress-percent remove"><i class="icon-remove"></i></div></div></li>
  51.                     <li data-percent="100"><span>Contratto firmato</span><div class="progress skills-animated remove width_100"><div class="progress-percent remove"><i class="icon-remove"></i></div></div></li>
  52.                     <li data-percent="100"><span>Fattura emessa</span><div class="progress skills-animated remove width_100"><div class="progress-percent remove"><i class="icon-remove"></i></div></div></li>
  53.                     <li data-percent="100"><span>Pagamento ricevuto</span><div class="progress skills-animated remove width_100"><div class="progress-percent remove"><i class="icon-remove"></i></div></div></li>
  54.                     <li data-percent="100"><span>Ordine archiviato</span><div class="progress skills-animated remove width_100"><div class="progress-percent remove"><i class="icon-remove"></i></div></div></li>
  55.                 </ul>';
  56.                 break;
  57.             case 'contract_sended':
  58.                 $result '<ul class="skills">
  59.                     <li data-percent="100"><span>Ordine inserito</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  60.                     <li data-percent="100"><span>Contratto inviato</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  61.                     <li data-percent="100"><span>Contratto firmato</span><div class="progress skills-animated remove width_100"><div class="progress-percent remove"><i class="icon-remove"></i></div></div></li>
  62.                     <li data-percent="100"><span>Fattura emessa</span><div class="progress skills-animated remove width_100"><div class="progress-percent remove"><i class="icon-remove"></i></div></div></li>
  63.                     <li data-percent="100"><span>Pagamento ricevuto</span><div class="progress skills-animated remove width_100"><div class="progress-percent remove"><i class="icon-remove"></i></div></div></li>
  64.                     <li data-percent="100"><span>Ordine archiviato</span><div class="progress skills-animated remove width_100"><div class="progress-percent remove"><i class="icon-remove"></i></div></div></li>
  65.                 </ul>';
  66.                 break;
  67.             case 'contract_signed':
  68.                 $result '<ul class="skills">
  69.                     <li data-percent="100"><span>Ordine inserito</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  70.                     <li data-percent="100"><span>Contratto inviato</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  71.                     <li data-percent="100"><span>Contratto firmato</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  72.                     <li data-percent="100"><span>Fattura emessa</span><div class="progress skills-animated remove width_100"><div class="progress-percent remove"><i class="icon-remove"></i></div></div></li>
  73.                     <li data-percent="100"><span>Pagamento ricevuto</span><div class="progress skills-animated remove width_100"><div class="progress-percent remove"><i class="icon-remove"></i></div></div></li>
  74.                     <li data-percent="100"><span>Ordine archiviato</span><div class="progress skills-animated remove width_100"><div class="progress-percent remove"><i class="icon-remove"></i></div></div></li>
  75.                 </ul>';
  76.                 break;
  77.             case 'invoice_issued':
  78.                 $result '<ul class="skills">
  79.                     <li data-percent="100"><span>Ordine inserito</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  80.                     <li data-percent="100"><span>Contratto inviato</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  81.                     <li data-percent="100"><span>Contratto firmato</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  82.                     <li data-percent="100"><span>Fattura emessa</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  83.                     <li data-percent="100"><span>Pagamento ricevuto</span><div class="progress skills-animated remove width_100"><div class="progress-percent remove"><i class="icon-remove"></i></div></div></li>
  84.                     <li data-percent="100"><span>Ordine archiviato</span><div class="progress skills-animated remove width_100"><div class="progress-percent remove"><i class="icon-remove"></i></div></div></li>
  85.                 </ul>';
  86.                 break;
  87.             case 'payment_received':
  88.                 $result '<ul class="skills">
  89.                     <li data-percent="100"><span>Ordine inserito</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  90.                     <li data-percent="100"><span>Contratto inviato</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  91.                     <li data-percent="100"><span>Contratto firmato</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  92.                     <li data-percent="100"><span>Fattura emessa</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  93.                     <li data-percent="100"><span>Pagamento ricevuto</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  94.                     <li data-percent="100"><span>Ordine archiviato</span><div class="progress skills-animated remove width_100"><div class="progress-percent remove"><i class="icon-remove"></i></div></div></li>
  95.                 </ul>';
  96.                 break;
  97.             case 'archived':
  98.                 $result '<ul class="skills">
  99.                     <li data-percent="100"><span>Ordine inserito</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  100.                     <li data-percent="100"><span>Contratto inviato</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  101.                     <li data-percent="100"><span>Contratto firmato</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  102.                     <li data-percent="100"><span>Fattura emessa</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  103.                     <li data-percent="100"><span>Pagamento ricevuto</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  104.                     <li data-percent="100"><span>Ordine archiviato</span><div class="progress skills-animated checkmark width_100"><div class="progress-percent checkmark"><i class="icon-checkmark"></i></div></div></li>
  105.                 </ul>';
  106.                 break;
  107.             default: break;
  108.         }
  109.         return $result;
  110.     }
  111.     
  112.     function getTotalAmount(){
  113.         $total 0;
  114.         foreach($this->items as $item)
  115.             $total $total + ($item->getQuantity() * $item->getCost());
  116.         return number_format($total'2'',''.').' €';
  117.     }
  118.     /**
  119.      * @ORM\Column(name="id", type="bigint")
  120.      * @ORM\Id
  121.      * @ORM\GeneratedValue(strategy="AUTO")
  122.      */
  123.     protected $id;
  124.     /**
  125.      * @ORM\Column(name="status", type="string", length=191)
  126.      */
  127.     protected $status "inserted";
  128.     
  129.     /**
  130.      * @ORM\Column(name="issue_date", type="date")
  131.      */
  132.     protected $issueDate;
  133.     
  134.     /**
  135.      * @ORM\Column(name="confirm_date", type="date", nullable=true)
  136.      */
  137.     protected $confirmDate;
  138.     
  139.     /**
  140.      * @ORM\Column(name="notes", type="text", nullable=true)
  141.      */
  142.     protected $notes;
  143.     
  144.     /**
  145.      * @ORM\Column(name="contract_path", type="string", length=191, nullable=true)
  146.      */
  147.     protected $contractPath;
  148.     // ManyToOne
  149.         /**
  150.          * @ORM\ManyToOne(targetEntity="App\Entity\Master\Company", inversedBy="orders")
  151.          * @ORM\JoinColumn(name="company_id", referencedColumnName="id")
  152.          */
  153.         private $company;
  154.         
  155.         /**
  156.          * @ORM\ManyToOne(targetEntity="App\Entity\Master\Company", inversedBy="signalerForOrders")
  157.          * @ORM\JoinColumn(name="signaler_id", referencedColumnName="id")
  158.          */
  159.         private $signaler;
  160.     //
  161.     
  162.     // OneToMany
  163.         /**
  164.          * @ORM\OneToMany(targetEntity="App\Entity\Master\OrderItem", mappedBy="order", cascade={"persist", "remove"})
  165.          */
  166.         private $items;
  167.     //
  168.     public function __construct()
  169.     {
  170.         $this->items = new ArrayCollection();
  171.     }
  172.     public function getId(): ?string
  173.     {
  174.         return $this->id;
  175.     }
  176.     public function getStatus(): ?string
  177.     {
  178.         return $this->status;
  179.     }
  180.     public function setStatus(string $status): self
  181.     {
  182.         $this->status $status;
  183.         return $this;
  184.     }
  185.     public function getIssueDate(): ?\DateTimeInterface
  186.     {
  187.         return $this->issueDate;
  188.     }
  189.     public function setIssueDate(\DateTimeInterface $issueDate): self
  190.     {
  191.         $this->issueDate $issueDate;
  192.         return $this;
  193.     }
  194.     public function getConfirmDate(): ?\DateTimeInterface
  195.     {
  196.         return $this->confirmDate;
  197.     }
  198.     public function setConfirmDate(?\DateTimeInterface $confirmDate): self
  199.     {
  200.         $this->confirmDate $confirmDate;
  201.         return $this;
  202.     }
  203.     public function getNotes(): ?string
  204.     {
  205.         return $this->notes;
  206.     }
  207.     public function setNotes(?string $notes): self
  208.     {
  209.         $this->notes $notes;
  210.         return $this;
  211.     }
  212.     public function getContractPath(): ?string
  213.     {
  214.         return $this->contractPath;
  215.     }
  216.     public function setContractPath(?string $contractPath): self
  217.     {
  218.         $this->contractPath $contractPath;
  219.         return $this;
  220.     }
  221.     public function getCompany(): ?Company
  222.     {
  223.         return $this->company;
  224.     }
  225.     public function setCompany(?Company $company): self
  226.     {
  227.         $this->company $company;
  228.         return $this;
  229.     }
  230.     public function getSignaler(): ?Company
  231.     {
  232.         return $this->signaler;
  233.     }
  234.     public function setSignaler(?Company $signaler): self
  235.     {
  236.         $this->signaler $signaler;
  237.         return $this;
  238.     }
  239.     /**
  240.      * @return Collection<int, OrderItem>
  241.      */
  242.     public function getItems(): Collection
  243.     {
  244.         return $this->items;
  245.     }
  246.     public function addItem(OrderItem $item): self
  247.     {
  248.         if (!$this->items->contains($item)) {
  249.             $this->items->add($item);
  250.             $item->setOrder($this);
  251.         }
  252.         return $this;
  253.     }
  254.     public function removeItem(OrderItem $item): self
  255.     {
  256.         if ($this->items->removeElement($item)) {
  257.             // set the owning side to null (unless already changed)
  258.             if ($item->getOrder() === $this) {
  259.                 $item->setOrder(null);
  260.             }
  261.         }
  262.         return $this;
  263.     }
  264. }