<?php
namespace App\Entity\ExternalPartner;
use App\Entity\RecurrentJob;
use DateTime;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
*
* @ORM\Table(
* name="billed_party_external_partner_accounting_entries"
* )
*/
class BilledPartyExternalPartnerAccountingEntry
{
public function __construct(
ExternalPartner $externalPartner,
IntegratedExternalPartnerCustomer $customer,
string $idAtExternalPartner,
RecurrentJob $recurrentJob,
DateTime $createdAt,
float $netPrice
) {
$this->externalPartner = $externalPartner;
$this->integratedExternalPartnerCustomer = $customer;
$this->idAtExternalPartner = $idAtExternalPartner;
$this->recurrentJob = $recurrentJob;
$this->createdAt = $createdAt;
$this->netPrice = $netPrice;
$this->accountingInformedAt = null;
}
/**
* @ORM\ManyToOne(targetEntity="App\Entity\ExternalPartner\ExternalPartner", cascade={"persist"})
*
* @ORM\JoinColumn(name="external_partners_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")
*
* @ORM\Id
*/
private ExternalPartner $externalPartner;
public function getExternalPartner(): ExternalPartner
{
return $this->externalPartner;
}
public function setExternalPartner(ExternalPartner $externalPartner): void
{
$this->externalPartner = $externalPartner;
}
/**
* @ORM\ManyToOne(targetEntity="App\Entity\ExternalPartner\IntegratedExternalPartnerCustomer", cascade={"persist"})
*
* @ORM\JoinColumn(name="integrated_external_partner_customers_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")
*
* @ORM\Id
*/
private IntegratedExternalPartnerCustomer $integratedExternalPartnerCustomer;
public function getIntegratedExternalPartnerCustomer(): IntegratedExternalPartnerCustomer
{
return $this->integratedExternalPartnerCustomer;
}
public function setIntegratedExternalPartnerCustomer(IntegratedExternalPartnerCustomer $integratedExternalPartnerCustomer): void
{
$this->integratedExternalPartnerCustomer = $integratedExternalPartnerCustomer;
}
/**
* @ORM\Column(name="id_at_external_partner", type="string", length=128, nullable=false)
*
* @ORM\Id
*/
private string $idAtExternalPartner;
public function getIdAtExternalPartner(): string
{
return $this->idAtExternalPartner;
}
public function setIdAtExternalPartner(string $idAtExternalPartner): void
{
$this->idAtExternalPartner = $idAtExternalPartner;
}
/**
* @ORM\ManyToOne(targetEntity="App\Entity\RecurrentJob", cascade={"persist"})
*
* @ORM\JoinColumn(name="recurrent_jobs_id", referencedColumnName="id", nullable=true, onDelete="SET NULL")
*/
private ?RecurrentJob $recurrentJob;
public function getRecurrentJob(): ?RecurrentJob
{
return $this->recurrentJob;
}
public function setRecurrentJob(RecurrentJob $recurrentJob): void
{
$this->recurrentJob = $recurrentJob;
}
/**
* @ORM\Column(name="created_at", type="datetime", nullable=false)
*/
private DateTime $createdAt;
public function getCreatedAt(): DateTime
{
return $this->createdAt;
}
public function setCreatedAt(DateTime $createdAt): void
{
$this->createdAt = $createdAt;
}
/**
* @ORM\Column(name="net_price", type="float", nullable=false)
*/
private float $netPrice;
public function getNetPrice(): float
{
return $this->netPrice;
}
public function setNetPrice(float $netPrice): void
{
$this->netPrice = $netPrice;
}
/**
* @ORM\Column(name="accounting_informed_at", type="datetime", nullable=true)
*/
private ?DateTime $accountingInformedAt;
public function getAccountingInformedAt(): ?DateTime
{
return $this->accountingInformedAt;
}
public function setAccountingInformedAt(?DateTime $accountingInformedAt): void
{
$this->accountingInformedAt = $accountingInformedAt;
}
}