<?php
namespace App\Entity\System;
use Doctrine\ORM\Mapping as ORM;
/**
* Class OrderInvoiceCustomer
*
* @ORM\Table(name="ps_order_invoices_customer")
*
* @ORM\Entity(repositoryClass="App\Repository\System\OrderInvoiceCustomerRepository")
*/
class OrderInvoiceCustomer
{
/**
* @var int
*
* @ORM\Id()
*
* @ORM\GeneratedValue()
*
* @ORM\Column(type="integer", name="id_order_invoice_customer")
*/
private $id;
/**
* @var Order
*
* @ORM\ManyToOne(targetEntity="App\Entity\System\Order")
*
* @ORM\JoinColumn(name="id_order", referencedColumnName="id_order", nullable=false)
*/
private $order;
/**
* @var OrderInvoiceCustomerDetail|null
*
* @ORM\OneToOne(targetEntity="App\Entity\System\OrderInvoiceCustomerDetail", inversedBy="orderInvoiceCustomer", cascade={"persist"})
*
* @ORM\JoinColumn(name="detail_id", referencedColumnName="id", nullable=true)
*/
private ?OrderInvoiceCustomerDetail $detail;
/**
* @var string
*
* @ORM\Column(type="string", length=100)
*/
private $fileName;
/**
* @var string
*
* @ORM\Column(type="string", length=255, options={"default": ""})
*/
private $concept;
/**
* @var \DateTime
*
* @ORM\Column(type="datetime")
*/
private $dateUploaded;
/**
* @var float
*
* @ORM\Column(type="float", name="importe_factura", nullable=true)
*/
private $invoiceAmount;
public static function createFromValues(Order $order, string $fileName, string $concept, float $invoiceAmount): OrderInvoiceCustomer
{
$invoice = new self();
$invoice->order = $order;
$invoice->fileName = $fileName;
$invoice->concept = $concept;
$invoice->dateUploaded = new \DateTime();
$invoice->invoiceAmount = $invoiceAmount;
return $invoice;
}
/**
* @param Order $order
* @param string $fileName
* @param string $concept
* @param float $invoiceAmount
*/
public function setValues(Order $order, string $fileName, string $concept, float $invoiceAmount): void
{
$this->order = $order;
$this->fileName = $fileName;
$this->concept = $concept;
$this->dateUploaded = new \DateTime();
$this->invoiceAmount = $invoiceAmount;
}
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @return \DateTime
*/
public function getDateUploaded(): \DateTime
{
return $this->dateUploaded;
}
/**
* @return Order
*/
public function getOrder(): Order
{
return $this->order;
}
/**
* @return string
*/
public function getFileName(): string
{
return $this->fileName;
}
public function getInvoiceAmount(): float
{
return $this->invoiceAmount;
}
public function getDetail(): ?OrderInvoiceCustomerDetail
{
return $this->detail;
}
public function setDetail(?OrderInvoiceCustomerDetail $detail): void
{
$this->detail = $detail;
}
}