2024-10-23 04:00:25 +02:00
|
|
|
<?php
|
2024-10-28 05:47:57 +01:00
|
|
|
/**
|
|
|
|
* Invoice Ninja (https://invoiceninja.com).
|
|
|
|
*
|
|
|
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
|
|
|
*
|
|
|
|
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
|
|
|
*
|
|
|
|
* @license https://www.elastic.co/licensing/elastic-license
|
|
|
|
*/
|
|
|
|
|
2024-10-23 04:00:25 +02:00
|
|
|
|
|
|
|
namespace App\Services\EDocument\Gateway\Storecove\Models;
|
|
|
|
|
2024-10-25 08:51:01 +02:00
|
|
|
use Symfony\Component\Serializer\Annotation\SerializedName;
|
2024-10-28 05:47:57 +01:00
|
|
|
use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
|
|
|
|
use Symfony\Component\Serializer\Attribute\Context;
|
2024-10-25 08:51:01 +02:00
|
|
|
|
2024-10-28 05:47:57 +01:00
|
|
|
class Invoice
|
2024-10-23 04:00:25 +02:00
|
|
|
{
|
2024-10-28 05:47:57 +01:00
|
|
|
public string $taxSystem = 'tax_line_percentages';
|
2024-10-25 08:51:01 +02:00
|
|
|
|
2024-10-28 05:47:57 +01:00
|
|
|
public string $documentCurrency = '';
|
2024-10-25 08:51:01 +02:00
|
|
|
|
2024-10-28 05:47:57 +01:00
|
|
|
public string $invoiceNumber = '';
|
2024-10-25 08:51:01 +02:00
|
|
|
|
2024-10-28 05:47:57 +01:00
|
|
|
public string $issueDate = '';
|
2024-10-25 08:51:01 +02:00
|
|
|
|
2024-10-28 05:47:57 +01:00
|
|
|
public string $taxPointDate = '';
|
2024-10-25 08:51:01 +02:00
|
|
|
|
2024-10-28 05:47:57 +01:00
|
|
|
public string $dueDate = '';
|
2024-10-25 08:51:01 +02:00
|
|
|
|
2024-10-28 05:47:57 +01:00
|
|
|
public string $invoicePeriod = '';
|
2024-10-25 08:51:01 +02:00
|
|
|
|
2024-10-28 05:47:57 +01:00
|
|
|
public array $references = [];
|
2024-10-25 08:51:01 +02:00
|
|
|
|
2024-10-28 05:47:57 +01:00
|
|
|
public ?string $accountingCost = null;
|
2024-10-25 08:51:01 +02:00
|
|
|
|
2024-10-28 05:47:57 +01:00
|
|
|
public string $note = '';
|
2024-10-25 08:51:01 +02:00
|
|
|
|
2024-10-28 05:47:57 +01:00
|
|
|
public float $amountIncludingVat = 0.0;
|
2024-10-25 08:51:01 +02:00
|
|
|
|
2024-10-28 05:47:57 +01:00
|
|
|
public ?float $prepaidAmount = null;
|
2024-10-25 08:51:01 +02:00
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public $accountingSupplierParty;
|
2024-10-25 08:51:01 +02:00
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public $accountingCustomerParty;
|
2024-10-25 08:51:01 +02:00
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public $paymentMeans = [];
|
2024-10-25 08:51:01 +02:00
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public $taxTotal = [];
|
2024-10-23 04:00:25 +02:00
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public $invoiceLines = [];
|
2024-10-25 08:51:01 +02:00
|
|
|
|
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public function setDocumentCurrency(string $documentCurrency): self
|
2024-10-25 08:51:01 +02:00
|
|
|
{
|
2024-10-23 04:00:25 +02:00
|
|
|
$this->documentCurrency = $documentCurrency;
|
2024-10-28 09:30:35 +01:00
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
2024-10-25 08:51:01 +02:00
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public function setInvoiceNumber(string $invoiceNumber): self
|
2024-10-25 08:51:01 +02:00
|
|
|
{
|
2024-10-23 04:00:25 +02:00
|
|
|
$this->invoiceNumber = $invoiceNumber;
|
2024-10-28 09:30:35 +01:00
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
2024-10-25 08:51:01 +02:00
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public function setIssueDate($issueDate): self
|
2024-10-25 08:51:01 +02:00
|
|
|
{
|
2024-10-23 04:00:25 +02:00
|
|
|
$this->issueDate = $issueDate;
|
2024-10-28 09:30:35 +01:00
|
|
|
|
|
|
|
return $this;
|
2024-10-25 08:51:01 +02:00
|
|
|
}
|
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public function setTaxPointDate($taxPointDate): self
|
2024-10-25 08:51:01 +02:00
|
|
|
{
|
2024-10-23 04:00:25 +02:00
|
|
|
$this->taxPointDate = $taxPointDate;
|
2024-10-28 09:30:35 +01:00
|
|
|
|
|
|
|
return $this;
|
2024-10-25 08:51:01 +02:00
|
|
|
}
|
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public function setDueDate($dueDate): self
|
2024-10-25 08:51:01 +02:00
|
|
|
{
|
2024-10-23 04:00:25 +02:00
|
|
|
$this->dueDate = $dueDate;
|
2024-10-28 09:30:35 +01:00
|
|
|
|
|
|
|
return $this;
|
2024-10-25 08:51:01 +02:00
|
|
|
}
|
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public function setInvoicePeriod($invoicePeriod): self
|
2024-10-25 08:51:01 +02:00
|
|
|
{
|
2024-10-23 04:00:25 +02:00
|
|
|
$this->invoicePeriod = $invoicePeriod;
|
2024-10-28 09:30:35 +01:00
|
|
|
return $this;
|
2024-10-25 08:51:01 +02:00
|
|
|
}
|
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public function setReferences($references): self
|
2024-10-25 08:51:01 +02:00
|
|
|
{
|
2024-10-23 04:00:25 +02:00
|
|
|
$this->references = $references;
|
2024-10-28 09:30:35 +01:00
|
|
|
return $this;
|
|
|
|
|
2024-10-25 08:51:01 +02:00
|
|
|
}
|
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public function addReferences($reference): self
|
|
|
|
{
|
|
|
|
$this->references[] = $reference;
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
public function setAccountingCost($accountingCost): self
|
2024-10-25 08:51:01 +02:00
|
|
|
{
|
2024-10-23 04:00:25 +02:00
|
|
|
$this->accountingCost = $accountingCost;
|
2024-10-28 09:30:35 +01:00
|
|
|
|
|
|
|
return $this;
|
|
|
|
|
2024-10-25 08:51:01 +02:00
|
|
|
}
|
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public function setNote($note): self
|
2024-10-25 08:51:01 +02:00
|
|
|
{
|
2024-10-23 04:00:25 +02:00
|
|
|
$this->note = $note;
|
2024-10-28 09:30:35 +01:00
|
|
|
|
|
|
|
return $this;
|
|
|
|
|
2024-10-25 08:51:01 +02:00
|
|
|
}
|
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public function setAmountIncludingVat ($amountIncludingVat): self
|
2024-10-25 08:51:01 +02:00
|
|
|
{
|
|
|
|
$this->amountIncludingVat = $amountIncludingVat;
|
2024-10-28 09:30:35 +01:00
|
|
|
|
|
|
|
return $this;
|
|
|
|
|
2024-10-25 08:51:01 +02:00
|
|
|
}
|
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public function setPrepaidAmount( $prepaidAmount): self
|
2024-10-25 08:51:01 +02:00
|
|
|
{
|
|
|
|
$this->prepaidAmount = $prepaidAmount;
|
2024-10-28 09:30:35 +01:00
|
|
|
|
|
|
|
return $this;
|
|
|
|
|
2024-10-25 08:51:01 +02:00
|
|
|
}
|
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public function setAccountingSupplierParty($accountingSupplierParty): self
|
2024-10-25 08:51:01 +02:00
|
|
|
{
|
2024-10-23 04:00:25 +02:00
|
|
|
$this->accountingSupplierParty = $accountingSupplierParty;
|
2024-10-28 09:30:35 +01:00
|
|
|
|
|
|
|
return $this;
|
|
|
|
|
2024-10-25 08:51:01 +02:00
|
|
|
}
|
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public function setAccountingCustomerParty( $accountingCustomerParty): self
|
2024-10-25 08:51:01 +02:00
|
|
|
{
|
2024-10-23 04:00:25 +02:00
|
|
|
$this->accountingCustomerParty = $accountingCustomerParty;
|
2024-10-28 09:30:35 +01:00
|
|
|
|
|
|
|
return $this;
|
|
|
|
|
2024-10-25 08:51:01 +02:00
|
|
|
}
|
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public function setPaymentMeans( $paymentMeans): self
|
2024-10-25 08:51:01 +02:00
|
|
|
{
|
|
|
|
$this->paymentMeans = $paymentMeans;
|
2024-10-28 09:30:35 +01:00
|
|
|
|
|
|
|
return $this;
|
|
|
|
|
2024-10-25 08:51:01 +02:00
|
|
|
}
|
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public function setTaxTotal( $taxTotal): self
|
2024-10-25 08:51:01 +02:00
|
|
|
{
|
|
|
|
$this->taxTotal = $taxTotal;
|
2024-10-28 09:30:35 +01:00
|
|
|
|
|
|
|
return $this;
|
|
|
|
|
2024-10-25 08:51:01 +02:00
|
|
|
}
|
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public function setInvoiceLines(array $invoiceLines): self
|
2024-10-25 08:51:01 +02:00
|
|
|
{
|
2024-10-23 04:00:25 +02:00
|
|
|
$this->invoiceLines = $invoiceLines;
|
2024-10-28 09:30:35 +01:00
|
|
|
|
|
|
|
return $this;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public function addInvoiceLines($invoiceLine): self
|
|
|
|
{
|
|
|
|
$this->invoiceLines[] = $invoiceLine;
|
|
|
|
return $this;
|
2024-10-25 08:51:01 +02:00
|
|
|
}
|
|
|
|
|
2024-10-28 05:47:57 +01:00
|
|
|
public function getInvoiceLines()
|
|
|
|
{
|
|
|
|
return $this->invoiceLines;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getTaxSystem(): string
|
|
|
|
{
|
|
|
|
return $this->taxSystem;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getDocumentCurrency(): string
|
|
|
|
{
|
|
|
|
return $this->documentCurrency;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getInvoiceNumber(): string
|
|
|
|
{
|
|
|
|
return $this->invoiceNumber;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getIssueDate(): string
|
|
|
|
{
|
|
|
|
return $this->issueDate;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getTaxPointDate(): string
|
|
|
|
{
|
|
|
|
return $this->taxPointDate;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getDueDate(): string
|
|
|
|
{
|
|
|
|
return $this->dueDate;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getInvoicePeriod(): string
|
|
|
|
{
|
|
|
|
return $this->invoicePeriod;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getReferences(): array
|
|
|
|
{
|
|
|
|
return $this->references;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getAccountingCost(): ?string
|
|
|
|
{
|
|
|
|
return $this->accountingCost;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getNote(): string
|
|
|
|
{
|
|
|
|
return $this->note;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getAmountIncludingVat(): float
|
|
|
|
{
|
|
|
|
return $this->amountIncludingVat;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getPrepaidAmount(): ?float
|
|
|
|
{
|
|
|
|
return $this->prepaidAmount;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getAccountingSupplierParty(): array
|
|
|
|
{
|
|
|
|
return $this->accountingSupplierParty;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getAccountingCustomerParty(): array
|
|
|
|
{
|
|
|
|
return $this->accountingCustomerParty;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getPaymentMeans(): array
|
|
|
|
{
|
|
|
|
return $this->paymentMeans;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getTaxTotal(): array
|
|
|
|
{
|
|
|
|
return $this->taxTotal;
|
|
|
|
}
|
|
|
|
|
2024-10-28 09:30:35 +01:00
|
|
|
public function setTaxSystem(string $taxSystem): self
|
2024-10-28 05:47:57 +01:00
|
|
|
{
|
|
|
|
$this->taxSystem = $taxSystem;
|
2024-10-28 09:30:35 +01:00
|
|
|
return $this;
|
2024-10-23 04:00:25 +02:00
|
|
|
}
|
|
|
|
}
|